2020-07-17

switch和循环语句的介绍

一、switch

1、switch格式
   switch(表达式){
         case 常量1:
             语句体1;
             break;
          case 常量2:
             语句体2;
             break;
          case 常量3:
             语句体3;
             break;
             ......
          case 常量n:
             语句体n;
             break;
             delault:
                 语句体n+1;
                 }
             
2、执行流程
(1) 计算表达式的值,分别跟各个常量进行匹配
(2) 如果和常量1 匹配到,就执行语句体1,执行break;switch语句直接结束
(2)如果和常量2匹配到,就执行语句体2,执行break;switch语句直接结束
(4)如果在匹配过程中跟所有常量都没有匹配,那么执行defaul语句

   

switch语句的注意事项

1、单词解释
   case 情况;break 打断,结束;default:默认
2、表达式:
    表达式计算出的结果数据类型为以下
    jdk1.5之前:byte,short,int,char
    jdk1.5:枚举
    jdk1.7:String
    switch小括号中的数据类型只能是:int,short,char,byte,枚举,String
3、 case后面跟的只能是常量,不能跟变量
4、break:每个语句体的后面都得跟一个break;语句,否则switch语句不会结束,并且会发生case穿透。
    case穿透的利用:多个情况如果是相同的执行逻辑,就可以使用case穿透。
5、default语句:可以写也可以不写,如果不写的话,我们的语句体可能会出现一句也不执行的情况,default这个语句可以放在switch结构体任何位置,如果没有放在最后,也得加上break;(建议把default放在最后0
6,switch语句结束的条件:遇到break和default
7、用swich输出月份的季节(使用了case穿透,以及键盘录入)
import java.util.Scanner;
class Day5_2 {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入数字1-12");
        int month=sc.nextInt();
        switch(month){
              case 3:
              case 4:
              case 5:
                  System.out.println("春季");
                  break;
              case 6:
              case 7:
              case 8:
                  System.out.println("夏季");
                  break;
              case 9:
              case 10:
              case 11:
                  System.out.println("秋季");
                  break;
              case 12:
              case 1:
              case 2:
                  System.out.println("冬季季");
                  break;
              default:
                   System.out.println("输入有误,请重新输入");
             }
       }
}


二、循环结构

1、循环:花开花落,一年四季的变化,月圆月缺。
2、人类不喜欢做重复的事情,电脑不仅喜欢做重复的事情了,还擅长去做重复的事情。 
3、实现语句:
     for语句:常用
     while语句:常用
     do while语句:不常用
4、java语言中,对于需要重复执行的相同的语句,循环语句实现对他们的一种简化。

for语句

1、for语句的格式:
  for(初始化语句;循环的判断表达式;初始化语句改变的表达式){
         循环语句;
         }
2、说明:
    初始化语句表达式:定义一个变量,用于记录循环次数。
    循环条件判断表达式:控制循环的次数。
    初始化语句改变的表达式:将初始化语句中声明的变量进行变化,让初始化变量向着循环不能改变的方向进行变化。
    循环语句:需要重复执行的语句。
3、执行流程
    for(int i=1; i<=10;i++)
        {

        System.out.println("Hello World!");
        }
     (1)第一步执行初始化语句 int i=1;
     (2)第二步执行条件判断表达式  i<=10;(如果条件不满足下面的步鄹不执行。
     (3)第三步执行循环体语句System.out.println("hello world");
     (4)第四步执行初始化变量的改变
     

while循环语句

1、格式:
初始化语句;
while(条件表达式){
循环语句;
初始化语句自增;
}
2、执行流程
(1)初始化语句;只执行一次
(2)计算条件表达式的值,如果是false循环直接结束。
(3)如果是true就执行循环体语句
(4)执行初始化变量的自增
(5)回到(2)步
3、条件表达式必须是布尔类型的(不能是数字只能是true或者false)
初始化的自增

知道确切的循环次数,用for
对于不确切的循环次数,用while

死循环

1、死循环,无限循环,循环永远执行,不会停止。
2、格式:
     while(true){
         循环体;
     }
     for(;;){
       循环语句;
     }
3、作用:
(1)在使用死循环的时候,虽然格式上使用了死循环的格式,但是肯能出现循环结束的情况,结合一些一些循环跳转语句种植或者跳出循环。
(2)在服务器运行中,希望服务器一直运行下去,用到死循环

跳转语句

1,跳转语句:在循环的过程中,结束循环,控制循环的使用的语句
2,continue;继续
    结束本次循环,继续下次循环
3,break:
    结束本层的循环

嵌套循环

1、在一次大循环中,每次循环的内容都是一个复杂的操作,是重复的操作,就需要在大循环中去定义一个小循环,把这个称为嵌套循环。
2、格式:
   for(初始化语句1;循环条件判断表达式1;初始化变量改变表达式1){
        for(初始化语句2;循环条件判断表达式2;初始化变量改变表达式2){     循环语句;
        }
    }
3、执行步骤(双重嵌套循环)

    (1) 第一步 执行初始化语句1
    (2) 第二步 执行循环条件判断语句1
    (3) 第三步 执行初始化语句2
    (4) 第四步 执行循条件环判断语句2
    (5) 第五步 执行初始化变量改变表达式2
    (6) 第六步 回到第四步直到条件不满足内层循环结束
    (7) 第七步 执行初始化变量改变表达式1
    (8) 第八步 回到第二步直到外层循环条件不满足
4、循环嵌套:外层循环控制行号,内层循环控制列号
5、练习
class Day5_8 {
    public static void main(String[] args) {
        //使用循环计算1+2+3+4+5+...+100的和
        //定义一个辅助变量,用来统计i的累加的和结果
        int sum=0;
        for(int i=1 ;i<=100;i++){
             
              sum +=i;
            
              }
                System.out.println("sum="+sum);
              System.out.println("-----------");
              //使用嵌套循环打印四行五列星星矩阵
            
              for(int i=1;i<=4;i++){
                  for( int j=1;j<=5;j++){
                    System.out.print("*");
                  }
                    System.out.println();     
              }
              System.out.println("-----------");
              //打印一个五行五列的直角的三角形
              for(int i=1;i<=5;i++)
              {
                 for(int j=1;j<=i;j++)
               {
                  System.out.print("*");
                  }
                  System.out.println();
               }
               System.out.println("-----------"); 
              /*  打印一个三角形
                   ***
                  *****
                 *******
                *********
                */
               for(int i=1;i<=5;i++){
                   for(int k=1;k<=5-i;k++){
                       System.out.print(" ");
                   }
                    
                  for(int j=1;j<=2*i-1;j++){
                     
                    System.out.print("*");
                    }
                    System.out.println();
                    
                  }
       }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。