JAVA流程控制

Scanner对象

Scanner类获取用户的输入

基本语法

Scanner scanner = new Scanner(System.in);

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

has方法初始默认值为“True”,能正常通过 if 判断,由例子进行深入理解。

next() 和 nextLine()

next():

  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  4. next()不能得到带有空格的字符串,

nextLine():

  1. 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  2. 可以获得空白。
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
    //使用next方式接收
	String str = scanner.next();//程序会等待用户输入完毕
    System.out.println("输出的内容为:"+str);
}
//凡是属于I0流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
scanner.close();

例子()

输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:

//输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
        Scanner scanner =new Scanner(System.in);//和
        double sum =0;//计算输入的数字合
        int m= 0;//记录输入数字个数
        //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
        while(scanner.hasNextInt()){
            int x=scanner.nextInt();
            m=m+1;//m++
            sum=sum+x;
            System.out.println("你输入了第"+m+"个数据,当前结果sum="+sum);
        }
        System.out.println(m+"个数的和为"+sum);
        System.out.println(m+"个数的平均值为"+(sum / m));
        scanner.close();
        //其中,只要输入的数字不是整数,则会退出循环

顺序结构

顺序结构是Java最基本的结构,除非特别指明,否则就按照顺序一句一句执行。

选择结构

  • if 单选择结构

    if( 条件 ){ ; }

  • if 双选择结构

    if( 条件 ){ ; }else{ ; }

  • if 多选择结构

    if( 条件 ){ ; }else if( 条件 ){ ; }else if( 条件 ){ ; }else{ ; }

    if 语句至多有1个else 语句,else 语句在所有的 else if 语句之后if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行

  • if 嵌套选择结构

    if( 条件 ){ if( 条件 ){ ; } }

  • switch多选择结构

    switch(expression){
        case value ://语句
    				break;//可选
        case value ://语句
    				break;//可选
            //可以有任意数量的case语句
        default ://可选//语句
    }
    //case的语句中没有break可能会出现穿透现象
    

    switch 语句中的变量类型可以是:

    byte、short、int 或者 char。

    从 Java SE 7 开始switch 支持字符串String 类型了

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

循环结构

while循环

while( 布尔表达式 ){ //循环内容 }

int n = 1;
int sum = 0;
while( n <= 100 ){
    sum += n;
    n++;
}
System.out.println( sum );

do...while循环

do{ //循环内容 }( 布尔表达式 );

int n = 1;
while( n < 0 ){
    System.out.println( "while执行" );
}
do{
    System.out.println( "do...while执行" );
}while( n < 0 );

[!NOTE]

while 和 do...while 区别:do...while至少先执行一次

for循环

for( 初始化; 布尔表达式; 更新 ){ //循环语句 }

for(int i=1;i<=10;i++){
    if( i%2 == 1 ){
        System.out.println( i + "是奇数" );
    }else{
        System.out.println( i + "是偶数" );
    }
}

增强for循环

jdk5增加了主要用于数组或集合的增强型for循环

for( 声明语句: 表达式 ){ //循环语句 }

int[] numbers = {10,20,30,40,50};//定义了一个数组
for(int x:numbers){
    System.out.println(x);
}

break continue

continue 停止本次循环,进入下一次循环

break 退出整个循环,执行下一个语句

goto 关键字

跳转到“标签”语句

//不建议使用!
outer:for(int i=101;i<150;i++){
    for(int j=2;j<i/2;j++){
        if(i % j == 0){
            continue outer;
        }
    }
	System.out.print(i+" ");
}

九九乘法表

for(int j=1;j<= 9; j++){
    for(int i =1;i<= j; i++){
        System.out.print(j+"*"+i+"="+(j*i)+"\t");
    }
	System.out.println();
}
posted on 2024-07-20 16:12  7007x  阅读(31)  评论(0)    收藏  举报