JavaSE系列(六)、流程控制语句

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。JavaSE系列(六)、流程控制语句,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文



六、流程控制语句

6.1 判断语句

  • if语句
if(关系表达式){
	语句体;

执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体

在这里插入图片描述

  • if…else语句
if(关系表达式){
	语句体1;
}else{
	语句体2;
}

执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2

在这里插入图片描述

  • if…else if…else语句
if(判断条件1){
	执行语句1;
}else if(判断条件2){
	执行语句2;
}
……
}else if(判断条件n){
	执行语句n;
}else{
	执行语句n+1;
}

执行流程:
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false

如果没有任何关系表达式为true,就执行语句体n+1

在这里插入图片描述

  • if语句与三元运算符的互换
public static void main(String[] args) {
      int a = 20;
      int b = 10;
      //定义变量,保存a和b的最大值
      int c;
      if (a > b){
          c = a;
      }else {
          c = b;
      }
      System.out.println("1.输出最大值为:"+c);
      //用三元运算符代替if...else判断语句,结果相同
      c = a > b ? a : b;
      System.out.println("2.输出最大值为:"+c);
  }

6.2 选择语句

在这里插入图片描述

  • 选择语句–switch

    switch(表达式){
    	case 常量值1:
    		语句体1;
    		break;
    	case 常量值2:
    		语句体2;
    		break;
    	...
    	default:
    		语句体n+1;
    		break;
    }
    

    执行流程:
    首先计算出表达式的值
    其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
    最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

  • case的穿透性
    在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。

    public static void main(String[] args) {
        int a = 5;
        switch (a){
            case 0:
                System.out.println("执行case0");
                break;
            case 5:
                System.out.println("执行case5");
            case 10:
                System.out.println("执行case10");
            default:
                System.out.println("执行default");
        }
        /*最后程序执行结果是
        执行case5
        执行case10
        执行default
        */
      }
    

    小贴士:
    上述程序中,执行case5后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接运行完整体switch。由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。

    switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7版本后可以接收字符串。

6.3 循环语句

  • for循环
    在这里插入图片描述
for(初始化表达式①; 布尔表达式②; 步进表达式④){
	循环体③
}

执行流程:
执行顺序:①②③④>②③④>②③④…当②不满足时才会停止循环,执行其他语句。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况

  • while循环
    在这里插入图片描述

    初始化表达式①
    while(布尔表达式②){
    	循环体③
    	步进表达式④
    }
    

    执行流程:
    执行顺序:①②③④>②③④>②③④…②不满足为止。
    ①负责完成循环变量初始化。
    ②负责判断是否满足循环条件,不满足则跳出循环。
    ③具体执行的语句。
    ④循环后,循环变量的变化情况。

  • do…while循环
    在这里插入图片描述

    初始化表达式①
    do{
    	循环体③
    	步进表达式④
    }while(布尔表达式②);
    

    执行流程:
    执行顺序:①③④>②③④>②③④…②不满足为止。
    ①负责完成循环变量初始化。
    ②负责判断是否满足循环条件,不满足则跳出循环。
    ③具体执行的语句
    ④循环后,循环变量的变化情况

public static void main(String[] args) {
        //使用循环输出10次HelloWorld
        //1.for循环
        for (int i = 0;i < 10;i++){
            System.out.println("HelloWorld"+i);
        }
        //2.while循环
        int j = 1;
        while (j <= 10){
            System.out.println("HelloWorld"+j);
            //步进表达式
            j++;
        }
        //3.do...while循环
        int x = 1;
        do {
            System.out.println("HelloWorld"+x);
            x++;
        }while (x <= 10)
    }
  • 嵌套循环

    所谓嵌套循环,是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数

    for(初始化表达式①;循环条件②;步进表达式⑦){
    	for(初始化表达式③;循环条件④;步进表达式⑥){
    		执行语句⑤;
    	}
    }
    

    执行流程:
    执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥
    外循环一次,内循环多次。
    比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环。

    public static void main(String[] args) {
            //使用嵌套循环,打印5*8的矩形
            //5*8的矩形,打印5行*号,每行8个(5行8列)
            //外循环5次,内循环8次
            for (int i = 0;i < 5;i++){
                for (int j = 0;j < 8;j++){
                    System.out.print("*");
                }
                //内循环打印8个*后,需要一次换行
                System.out.println();
            }
        }
    
  • 死循环

    死循环:也就是循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}。

  • 跳出语句

  • break

    使用场景:终止switch或者循环

  • continue

    使用场景:结束本次循环,继续下一次的循环

public static void main(String[] args) {
        for (int i = 1;i <= 10;i++){
            if (i == 3){
                /*
                break;
                输出 HelloWorld1 HelloWorld2
                */
                /*
                continue;
                输出 除了HelloWorld3其他全都输出
                */
            }
            System.out.println("HelloWorld"+i);
        }
    }

[^for 和 while 的小区别:]: 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继 续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消 失,能够提高内存的使用效率。 在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/189534.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!