Java基础-学习笔记(四)-流程控制

1、顺序结构  if语句

if(表达式){执行语句块}(变量=布尔表达式?语句1:语句2 表达式为真则执行语句1,反之执行语句2)

if(表达式){执行语句块} else {}

if(表达式1){执行语句块} else if(表达式2){}else

if语句也可以嵌套在if语句中,else与上文中最近的if匹配

2、选择结构  switch语句

看着下面的代码,也真是醉了,我咋能写出这样的~不过从中也可以吸取点教训,case后面跟的只能是常量,switch后面的表达式可以接受byte、short、int、char型

 1 public static void main(String agrs[])
 2     {
 3         int grade=85;
 4         switch(grade)
 5         {
 6             /*case(grade < 60)://报错 不兼容的类型: boolean无法转换为int (case后面必须是常量)
 7                 System.out.println("You are unpassed!");*/
 8             case 1://傻帽!grade是85,肯定是不等于1啊,怎么可能去执行if语句,最后输出结果肯定是It's Wrong!
 9                 if(grade<60)
10                     System.out.println("You are unpassed!");
11             case 2:
12                 if((grade>60)&&(grade<80))
13                     System.out.println("You got B!");
14             case 3:
15                 if((grade>80)&&(grade<=100))
16                     System.out.println("You got A!");
17             default:
18                 System.out.println("It's Wrong!");
19         }
20     }

再写一个正确的

 1 public static void main(String agrs[])
 2     {
 3         int x=3;
 4         switch(x)
 5         {
 6             case 1:
 7                 System.out.println("It's Monday");
 8             case 2:                
 9                 System.out.println("It's Tuesday");
10             case 3:
11                 System.out.println("It's Wednesday");
12             case 4:
13                 System.out.println("It's Thursday");
14             case 5:
15                 System.out.println("It's Friday");
16             default:
17                 System.out.println("It's Weekend!");
18         }
19     }

输出结果:

It's Wednesday
It's Thursday
It's Friday
It's Weekend!

说明switch中一旦碰到满足条件的case,不仅执行完该case中的语句,还顺序执行其后面的内容,为了避免这个问题,需要在每个case的语句后加上break跳出循环

 1 public static void main(String agrs[])
 2     {
 3         int x=3;
 4         switch(x)
 5         {
 6             case 1:
 7                 System.out.println("It's Monday");
 8             case 2:                
 9                 System.out.println("It's Tuesday");
10             case 3:
11             case 4:
12                 System.out.println("It's Thursday");
13                 break;
14             case 5:
15                 System.out.println("It's Friday");
16             default:
17                 System.out.println("It's Weekend!");
18         }
19     }//输出It's Thursday

从上面代码中可以看到,加了break就可以跳出循环,并且,还说明了一个问题,就是,当多种情况下要执行的语句是一样的,我们可以如上所示操作,将3、4共用同一语句块

3、循环语句

while(表达式){语句}//当表达式为真,则执行语句

do

{

   语句

}while(表达式); //先执行语句,在执行while中的表达式,若为真,则继续执行语句,直至表达式为假

for(初始化表达式;循环条件表达式;循环后的操作表达式)循环体

break 跳出当前循环体

continue 跳出当前循环语句,接着执行下一次的循环

 1 public static void main(String agrs[])
 2     {
 3         int i=1;
 4         for(;i<11;i++)
 5         {
 6             if(i%3==0)
 7                 break;
 8             System.out.println(i);
 9         }
10     }//输出1,2
 1 public static void main(String agrs[])
 2     {
 3         int i=1;
 4         for(;i<11;i++)
 5         {
 6             if(i%3==0)
 7                 continue;
 8             System.out.println(i);
 9         }
10     }//输出1,2,4,5,7,8,10

ps:当break被标记,如下所示,执行完break st后,程序会跳出最外层while(即被标记的while循环),慎用~

st:while(true)

{

  while(true)

    {

      break st;

    }

}

原文地址:https://www.cnblogs.com/tiantianxiangshang33/p/4722217.html