java笔记寒假04


第四天

一、用户交互Scanner

1、java.util.Scanner是java5的新特征,可以用Scanner类来获取用户的输入

2、基本语法

 Scanner s = new Scanner(System.in);

通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据

3、

 import java.util.Scanner;
 ?
 public class Demo01 {
     public static void main(String[] args) {
 ?
 ?
         //创建一个扫描器对象,用于接收键盘数据
         Scanner scanner = new Scanner(System.in);
         System.out.println("使用next方式接收:");
 ?
         //判断用户有没有输入字符串
         if (scanner.hasNext()){
             //使用next方式接收
             String str = scanner.next();
             System.out.println("输出的内容为:"+str);
             //输入hello world会输出hello
        }
 ?
         //凡是属于Io流的类如果不关闭会一直占用资源,要养成良好习惯用完关闭
         //IO流 输入流和输出流
         scanner.close();
 ?
    }
 }

2、

 import java.util.Scanner;
 ?
 public class Demo02 {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
 ?
         if (scanner.hasNextLine()){
 ?
             String str = scanner.nextLine();
             System.out.println("输出的内容为:"+str);
             //输入hello world会输出hello world
        }
         scanner.close();
    }
 }

3、一般输出采用

 Scanner scanner = new Scanner(System.in);
 System.out.println("请输入:" );
 String str = scanner.nextLine();
 scanner.close();

4、关于next()和nextLine()

next():

  1. 一定要读取到有效字符后才可以结束输入

  2. 输入有效字符前遇到的空白会自动将其去掉,有效字符后输入的空白会将其作为分隔符或者结束符;

  3. next()不能得到带有空格的字符串

nextLine():

  1. 以enter为结束符,nextLine()方法返回的是输入回车之前的所有字符

  2. 可以获得空白

5、

         Scanner scanner = new Scanner(System.in);
         //从键盘接收数据
         int i = 0;
         float f = 0.0f;
 ?
         System.out.println("请输入整数");
 ?
         if (scanner.hasNextInt()){
             i = scanner.nextInt();
             System.out.println("整数数据:"+i);
        }else{
             System.out.println("输入的不是整数");
        }
 ?
         if (scanner.hasNextFloat()){
             f = scanner.nextFloat();
             System.out.println("小数数据"+f);
        }else{
             System.out.println("输入的不是小数5");
        }
         scanner.close();
 //狂神的小案例
     public static void main(String[] args) {
         //输入多个数字,求总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
 ?
         Scanner scanner = new Scanner(System.in);
 ?
         //和
         double sum = 0;
         //计算输出了多少个数字
         int m = 0;
 ?
         //通过循环判断是否还有输入,并在里面对每一次进行求和统计
         while (scanner.hasNextDouble()){
             double x = scanner.nextDouble();
             m = m + 1;
             sum = sum + x;
        }
         System.out.println(m+"个数的和为"+sum);
         System.out.println(m+"个数的平均数是"+(sum/m));
    }

二、顺序结构

1、java的基本结构就是顺序结构,除非特别指明,否则按顺序一句一句执行

2、顺序结构是最简单的算法结构

3、语句和语句,框和框之间,从上到下的顺序进行

三、选择结构

1、if选择结构

 //if单选择结构
 if(布尔表达式){
     //布尔表达式为ture会执行的语句
 }
 ------------------------------------------
 public static void main(String[] args) {
     Scanner scanner = new Scanner(System.in);
     System.out.println("请输入内容");
 ?
     String str = scanner.nextLine();
     //equals:判断字符串是否相等
     if (str.equals("hello")){
         System.out.println("s");
    }
     System.out.println("end");
     scanner.close();
 }
 /*if双选择结构
 if(布尔表达式){
 布尔表达式为ture执行的语句
 }else{
 布尔表达式为false执行的语句
 } */
 ?
 public static void main(String[] args) {
         //考试分数大于六十分就是及格,小于六十分就是不及格
         Scanner scanner = new Scanner(System.in);
         double score = scanner.nextDouble();
         if (score>=60){
             System.out.println("及格");
        }else {
             System.out.println("不及格");
        }
 ?
         scanner.close();
 if多选择结构
 if(){
 ?
 }else if(){
 ?
 }else{
 ?
 }

学c的时候都学过,基本一样,笔记不写那么详细了。

if结构还可以嵌套

2、Switch选择结构

 switch(expression){
     case value :
         //语句
         break;//可选
      case value :
         //语句
         break;//可选
     default : //可选
         //语句
 }

switch语句中的变量类型可以是byte,short,int或char

从java se7开始

switch支持String类型了

case标签必须为字符串常量或者字面量

 public static void main(String[] args) {
         //   case穿透
         char ch = 'C';
         switch (ch){
             case 'A' :
                 System.out.println("1");
                 break; //可选
             case 'B' :
                 System.out.println("2");
 ?
             case 'C' :
                 System.out.println("3");
 ?
             case 'D' :
                 System.out.println("4");
 ?
             case 'E' :
                 System.out.println("5");
 ?
        }
    }
 //会输出345,因为没写break

四、循环结构(这在学C的时候也学的差不多,不写笔记了)

1、While循环

 while(布尔表达式){
 ?
 }
 ?
 //死循环
 while(ture){
  //等待客户端链接
  //定时检查等等
 }
 //计算1+2+3+……+100=?
 ?
 int i = 1;
         int sum = 0;
         while (i<101){
             sum = sum + i;
             i++;
        }
         System.out.println(sum);//5050

2、do…while循环

while语句不满足条件,不会进入循环,先判断后循环

do…while和while相似,但是循环最少会执行一次,先循环后判断

 public static void main(String[] args) {
         int i = 1;
         int sum = 0;
         do{
             sum=sum+i;
             i++;
        }while(i<=100);
         System.out.println(sum);
    }