Java流程控制

Java流程控制

Scanner对象

可以通过Scanner类来获取用户的输入

基本语法:

Scanner s=new Scanner(System.in);

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

next()接受的效果 (有空格 只输出了hello world并没有输出)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V775rb85-1642091685974)(C:\Users\29709\AppData\Roaming\Typora\typora-user-images\image-20220109233542960.png)]

nextLine()接受的效果 (有空格 hello world全部输出了)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7sa6bJs-1642091685976)(C:\Users\29709\AppData\Roaming\Typora\typora-user-images\image-20220109233740130.png)]

next()与nextLine()的区别:

next():

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

nextLine():

  1. 以Enter为结束符,nextLine()方法返回的是输入回车之前的所有字符
  2. 可以获得空白字符

小结:尽量使用nextLine()

运用Scanner
//输入多个数字,求其和并求其平均值
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入数据:\n");
        //和
        int num=0;
        //输入数据的个数
        int m=0;

        //当输入不是整型的时候就结束输入
        while (scanner.hasNextInt()){
            num+=scanner.nextInt();//求和
            m++;//计数
        }
        //平均数
        double avg=num/m;
        System.out.println("和为:"+num);
        System.out.println("平均数为:"+avg);
        scanner.close();

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6LX1TCp5-1642091685976)(C:\Users\29709\AppData\Roaming\Typora\typora-user-images\image-20220110001554102.png)]

顺序结构

除非特别指明,否则按照顺序一句一句的执行 自上而下的顺序进行,由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构

选择结构

if单选择结构:

if(布尔表达式){

//如果布尔表达式为true,则将执行语句

}

Switch

case穿透性 一定要带上break,

同时支持String 反编译,通过hasCode进行选择

//结构
Switch(expression){
    case value: xxxxxxx 
                 break;
    case value:xxxxxxxxx
                 break;
    default:
          xxxxxx
}

循环结构

一般要避免死循环,少数情况下需要一直执行如:服务器的请求响应监听等

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

}

让循环在失效的情况下停止下来

while是先判断后执行,do-while是先执行后判断
do{

 	//执行内容

}while(布尔表达式)

do-while即使不满足条件,程序也至少执行一次

for(初始化;布尔表达式;更新){	
    //代码块
}

for循环的训练:

package com.study.xunhuan;

public class ForDemo {
    public static void main(String[] args) {
        //ctrl+shift+/   块注释快捷键
        /*int sum=0;
        for(int i=1;i<=100;i++){
            sum+=i;
        }
        System.out.println(sum);*/
        //计算0-100之间的奇数和偶数的和
        int jNum=0;
        int oNum=0;
        for(int i=0;i<=100;i++){
            if(i%2==0){//偶数
                oNum+=i;
            }else {
                jNum+=i;
            }
        }
        System.out.println(jNum);
        System.out.println(oNum);
        //用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个
        int n=0;//记每行个数
        for(int i=1;i<=1000;i++){
            if(i%5==0){
                n++;
                System.out.print(i+" ");
                if(n==3){
                    System.out.println();
                    n=0;
                }

            }
        }
        System.out.println();
        //打印九九乘法表
        int num;
        for(int i=1;i<=9;i++){
            for (int j=1;j<=i;j++){
                System.out.print(i+"*"+j+"="+i*j+" ");
            }
            System.out.println();
        }

    }
}

//运行效果
2500
2550
5 10 15 
20 25 30 
35 40 45 
50 55 60 
65 70 75 
80 85 90 
95 100 105 
110 115 120 
125 130 135 
140 145 150 
155 160 165 
170 175 180 
185 190 195 
200 205 210 
215 220 225 
230 235 240 
245 250 255 
260 265 270 
275 280 285 
290 295 300 
305 310 315 
320 325 330 
335 340 345 
350 355 360 
365 370 375 
380 385 390 
395 400 405 
410 415 420 
425 430 435 
440 445 450 
455 460 465 
470 475 480 
485 490 495 
500 505 510 
515 520 525 
530 535 540 
545 550 555 
560 565 570 
575 580 585 
590 595 600 
605 610 615 
620 625 630 
635 640 645 
650 655 660 
665 670 675 
680 685 690 
695 700 705 
710 715 720 
725 730 735 
740 745 750 
755 760 765 
770 775 780 
785 790 795 
800 805 810 
815 820 825 
830 835 840 
845 850 855 
860 865 870 
875 880 885 
890 895 900 
905 910 915 
920 925 930 
935 940 945 
950 955 960 
965 970 975 
980 985 990 
995 1000 
1*1=1 
2*1=2 2*2=4 
3*1=3 3*2=6 3*3=9 
4*1=4 4*2=8 4*3=12 4*4=16 
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

Process finished with exit code 0

增强for 循环

格式:

for(声明语句:表达式){
    //代码块
}
int[] num={1,2,3,4,5};

        //写死的操作
        for(int i=0;i<num.length;i++){
            System.out.println(num[i]);
        }

        //增强版for循环是 num把其数组的每一个值都赋值给了i
        for (int i:num){
            System.out.println(i);
        }

break和continue区别:

break用于强行退出循环,不执行循环中剩余的语句(强制终止循环)

continue语句用于循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定(终止本次循环,用于跳过本次循环中未执行的语句)

package com.study.xunhuan;

public class BreakContinue {
    public static void main(String[] args) {
        //break
        int i=0;
        while(i<100){
            i++;
            System.out.println(i);
            if (i==10){
                break;//终止循环
            }
        }
        //break输出结果, 10之后的数据都没输出

        //continue终止本次循环,不影响大局
        int n=0;
        while(n<100){
            n++;
            if(n%20==0){
                System.out.println();
                continue;
            }
            System.out.println(n);
        }
        //continue输出结果,20的倍数都没输出
    }
}

goto关键字(了解)
label:for(){
    if(){
        continue label;//循环返回到label处
    }
}

你可能感兴趣的:(开发,入门基础,Java,java,开发语言,后端)