【JAVA基础入门】第三章 程序流控制

【JAVA基础入门】第三章 程序流控制

2020-04-03 

if分支判断

1. 简单if

语法:

if(条件判断表达式){

      执行语句

}

如果条件判断的表达式返回值是true则可以执行If内部的语句,否则如果是false就不执行。

条件表达式的结果一定是true或false。

例子:

 1 class  Demo_if{
 2     /**
 3     示例:实现程序如果分数大于60分就及格
 4     
 5     if(条件判断表达式){
 6         执行语句;
 7  8     */
 9     
10     public static void main(String[] args){
11         //定义一个分数的变量
12         int score = 90;
13         
14         if(score >= 60){
15             System.out.println("恭喜了,及格了");
16             System.out.println("恭喜了,及格了!");
17             
18         }
19         
20         System.out.println("程序结束");
21         
22     }
23     
24 }
Demo_if.java
 1 class  Demo_if2{
 2     /**
 3     示例:实现程序如果分数大于60分就及格
 4     
 5     if(条件判断表达式){
 6         执行语句;
 7  8     */
 9     
10     public static void main(String[] args){
11         //定义一个分数的变量
12         int score = 55;
13         //如果if是没有{}作为if体,那么if的紧接着下面的第一行就是if体
14         if(score >= 60)
15             System.out.println("恭喜了,及格了");
16         System.out.println("恭喜了,及格了!");
17             
18         
19         System.out.println("程序结束");
20         
21     }
22 
23 }
Demo_if2.java

2. if…else

语法:

if(条件判断表达式){

      执行语句

}else{

      执行语句

}

例子:

 1 class  Demo_ifelse{
 2     /**
 3     示例:实现程序如果分数大于60分就及格
 4     
 5     if(条件判断表达式){
 6         执行语句;
 7     }else{
 8         执行语句;
 9     }
10     */
11     
12     public static void main(String[] args){
13         //定义一个分数的变量
14         int score = 55;
15         //如果if是没有{}作为if体,那么if的紧接着下面的第一行就是if体
16         if(score >= 60){
17             System.out.println("恭喜了,及格了");
18             
19         }else{
20             
21         System.out.println("抱歉,你没及格");
22             
23         }
24 
25         System.out.println("程序结束");
26         
27     }
28 
29 }
Demo_ifelse.java

小例题:

 1 class Demo_ifelse2{
 2     /**
 3         示例:打印每个员工的工资等级,如果大于3000就是D级,
 4         如果大于5000就是C级,如果大于8000就是B级,如果大于10000就是A级。
 5         
 6         
 7         D:3000-5000
 8         C:5000-8000
 9         B:8000-1000
10         A:>10000
11     */
12     
13     public static void main(String[] args){
14         
15         //定义一个工资变量
16         int salary = 7000;
17         
18         if(salary > 3000 && salary <=5000){
19             System.out.println("D级");
20         }
21         
22         if(salary > 5000 && salary <=8000){
23             System.out.println("C级");
24         }
25         
26         if(salary > 8000 && salary <=10000){
27             System.out.println("B级");
28         }
29         
30         if(salary >= 10000){
31             System.out.println("A级");
32         }
33 
34     }
35 
36 }
Demo_ifelse2.java

3.多重if…else if…else

语法:

if(条件判断表达式){                     //score >=60

      执行语句;

}else if(条件表达式2){                //score < 60 && score > 30

      执行语句;

}else if(条件表达式3){

      执行语句;

}else{

}

注意:多重If 当遇到第一个满足条件表达式时执行当前的if语句,就不会再向下去执行。其后的else if条件语句一定是在满足前面的条件语句的情况下才执行。

例子:

 1 class Demo_ifelseif{
 2     /**
 3         示例:打印每个员工的工资等级,如果大于3000就是D级,
 4         如果大于5000就是C级,如果大于8000就是B级,如果大于10000就是A级。
 5     
 6         D:3000-5000
 7         C:5000-8000
 8         B:8000-1000
 9         A:>10000
10     */
11     
12     public static void main(String[] args){
13         
14         //定义一个工资变量
15         int salary = 12000;
16         
17         if(salary > 10000){
18             System.out.println("A级");
19         }else if (salary > 8000){
20             System.out.println("B级");
21         }else if(salary > 5000){
22             System.out.println("C级");
23         }else if(salary > 3000){
24             System.out.println("D级");
25         }
26     
27     }
28 
29 }
Demo_ifelseif.java

2.Switch分支判断

switch的表达式类型和常量的类型要匹配,且只能是byte,short,char,int,string.

switch(表达式){

      case 常量1:

             执行语句1;

break;

//跳出switch,如果没有break会继续执行直到遇到break才跳出switch

      case 常量2:

             执行语句2;

             break;

default:

执行语句;

break;

}

例子:

 1 class Demo_switch{
 2     /**
 3         示例:根据工资的等级打印不同的*
 4         1:*
 5         2:**
 6         3:***
 7         4:****
 8         
 9     */
10     
11     public static void main(String[] args){
12         // 定义一个等级的变量
13         int grade = 4;
14         //switch的表达式类型和常量的类型要匹配,且只能是byte,short,char,int,string
15         switch(grade){
16             //如果grade的值和1相等的话就会执行相应的语句
17             case 1:
18                 System.out.println("*");
19                 break;
20             case 2:
21                 System.out.println("**");
22                 break;
23             case 3:
24                 System.out.println("***");
25                 break;
26             case 4:
27                 System.out.println("****");
28                 break;
29             default:
30                 System.out.println("没有这个级别");
31                 break;
32             
33         }
34         System.out.println("程序结束");
35     }
36     
37 }
Demo_switch.java
 1 class Demo_switch2{
 2     /**
 3         示例:根据工资的等级打印不同的*
 4         1:*
 5         2:**
 6         3:***
 7         4:****
 8         
 9     */
10     
11     public static void main(String[] args){
12         // 定义一个等级的变量
13         String grade = "三";
14         //switch的表达式类型和常量的类型要匹配,且只能是byte,short,char,int,string
15         switch(grade){
16             //如果grade的值和1相等的话就会执行相应的语句
17             case "一":
18                 System.out.println("*");
19                 break;//跳出switch,如果没有break会继续执行直到遇到break才跳出switch
20             case "二":
21                 System.out.println("**");
22                 break;//跳出switch,
23             case "三":
24                 System.out.println("***");
25                 break;//跳出switch
26             case "四":
27                 System.out.println("****");
28                 break;//跳出switch
29             default:
30                 System.out.println("没有这个级别");
31                 break;//跳出switch
32             
33         }
34         System.out.println("程序结束");
35     }
36     
37 }
Demo_switch2.java             
 1 class Demo_switch3{
 2     /**
 3         示例:打印指定年月的天数
 4         
 5         2019  8
 6         
 7         31:1 3 5 7 8 10 12
 8         30:4 6 9 11
 9         28:2月 平年
10         29:2月 闰年:如果年可以被400整除,可以被4整除但是不能被100整除
11         
12         
13     */
14     
15     public static void main(String[] args){
16         
17         //定义年月
18         int year = 2024;
19         int month = 2;
20         //定义一个未知的变量
21         int day = -1;
22         
23         switch(month){
24             case 1:
25             case 3:
26             case 5:
27             case 7:
28             case 8:
29             case 10:
30             case 12:
31                 day = 31;
32                 break;
33             case 4:
34             case 6:
35             case 9:
36             case 11:
37                 day = 30;
38                 break;
39             case 2:
40                 if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0) ){
41                     day = 29;
42                 }else{
43                     day = 28;
44                 }
45                 break;
46             default:
47                 System.out.println("月份不合理");
48                 break;
49         }
50             if(day != -1){
51                 System.out.println(year+"年"+month+"月有"+day+"天");
52             }
53         System.out.println("程序结束");
54     }
55     
56 }
Demo_switch3.java

3.三元运算符

语法:

逻辑表达式2?表达式3:表达式4

?前面的逻辑表达式2如果运算结果是true,整个表达式的结果就是表达式3

?前面的逻辑表达式2如果运算结果式false,整个表达式的结果就是表达式4

注意:三元运算符适合两个值的判断。

表达式3和4可以是常量或变量或方法。

例子:

 1 class Demo_sanyuan{
 2     /**
 3         示例:
 4             给定一个变量 1男 2女
 5         
 6     */
 7     
 8     public static void main(String[] args){
 9         //定义一个变量
10         
11         int gender = 1;
12         /*
13         if(gender == 1){
14             System.out.println("男");
15         }else{
16             System.out.println("女");
17         }
18         */
19         //三元运算适合来代替if else的形式
20         //逻辑表达式2?表达式3:表达式4  
21         //三元运算符的结果是由结果表达式的类型决定,表达式3和4的类型要一致
22         char c = gender == 1?'男':'女';
23         System.out.println(c);
24         
25         String man = "我是男";
26         String result = gender == 1? man :"我是女";
27         System.out.println(result);
28         
29         //如果分数大于等于90为A,大于等于60为B,小于60为C
30         
31         int score = 99;
32         /*
33         if(score >= 90){
34             System.out.println("A");
35         }else if(score >= 60){
36             System.out.println("B");
37         }else{
38             System.out.println("C");
39         }
40         */
41         
42         String result1 = score >= 90?"A":(score >= 60?"B":"C");
43         System.out.println(result1);
44     }
45 }
Demo_sanyuan.java

4.循环结构

while

语法:

      while(表达式){

      循环体

}

表达式结果如果是True那么就执行循环体,如果是False就结束循环。

 

 

 

例子:

 1 class Demo_while{
 2     /**
 3         示例1:打印1到100之间的数字
 4             循环条件:i<=100
 5         
 6         
 7         1.变量初始化
 8         2.循环条件的判断
 9         3.计数器的累加
10     */
11     
12     
13     public static void main(String[] args){
14         //定义一个变量
15         int i = 1;
16         
17         while(i <= 100){
18             //打印
19             System.out.println(i);
20             //给i累加
21             i++;
22         }
23         
24         System.out.println("程序结束");
25         
26     }
27     
28 }
Demo_while.java
 1 class Demo_while2{
 2     /**
 3         示例2:打印从1到100之间所有的偶数和
 4     */
 5     
 6     public static void main(String[] args){
 7         //定义一个计数器
 8         int i = 1;
 9         int total = 0;
10         
11         while(i <= 100){
12             //判断是否是偶数
13             if(i % 2 == 0){
14                 total += i;
15             }
16         //计数器的累加
17             i++;
18         
19         }
20         System.out.println(total);
21         System.out.println("程序结束");
22         
23     }
24     
25 }
Demo_while2.java

do…while

语法:

do{

      循环体

}while(表达式);

注意:do…while和while, 前者是先执行循环体,后者是先判断再执行循环体  

 

 

 

例子:

 1 class Demo_dowhile{
 2     /**
 3         示例:打印从1到100之间所有的偶数和
 4         
 5         
 6     */
 7     
 8     public static void main(String[] args){
 9         //定义一个计数器
10         int i = 1;
11         int total = 0;
12         
13         do{
14             if(i % 2 == 0){
15                 total += i;
16             }
17             //计数器累加
18             i++;
19             }while(i <= 100);
20                 
21         System.out.println(total);
22     }
23     
24 }
Demo_dowhile.java
 1 class Demo_dowhile2{
 2     /**
 3         示例:打印从100到1000之间所有的水仙花数
 4             234=2^3+3^3+4^3
 5             
 6         分析:
 7         循环条件:判断计数器是大于100小于1000
 8         循环操作:更新计数器,判断是否为水仙花数
 9         
10     */
11     
12     
13     public static void main(String[] args){
14         //定义一个计数器
15         int i = 100;
16         
17         do{
18             
19             //获得个位数
20             int g = i % 10;
21             //获得十位数
22             int s =(i / 10) % 10;
23             //获得百位数
24             int b = i / 100;
25             // 判断是否为水仙花数
26             if((g*g*g + s*s*s + b*b*b ) == i){
27                 System.out.println(i);
28             }
29             
30             //计数器的累加
31             i++;
32         }while(i < 1000);
33         
34         System.out.println("程序结束");
35     }
36     
37 }
Demo_dowhile2.java
 1 class Demo_dowhile3{
 2     /**
 3         示例:打印从100到1000之间所有的夹心饼干数
 4             如:191,838
 5             
 6         分析:
 7         循环条件:判断计数器是大于100小于1000
 8         循环操作:更新计数器,判断是否为夹心饼干数
 9         
10     */
11     
12     
13     public static void main(String[] args){
14         //定义一个计数器
15         int i = 100;
16         
17         do{
18             
19             //获得个位数
20             int g = i % 10;
21             //获得十位数
22             int s =(i / 10) % 10;
23             //获得百位数
24             int b = i / 100;
25             // 判断是否为水仙花数
26             if(g == b){
27                 System.out.println(i);
28             }
29             
30             //计数器的累加
31             i++;
32         }while(i < 1000);
33         
34         System.out.println("程序结束");
35     }
36     
37 }
Demo_dowhile3.java

for循环

语法:

for(表达式1;表达式2;表达式3){

      循环体

}

表达式1:计数器的初始化,它只初始化一次

表达式2:循环条件的判断,多次执行

表达式3:修改计数器,多次执行

例子:

 1 class Demo_for{
 2     /**
 3         示例:打印从1到100之间所有的数字
 4 
 5     */
 6 
 7     public static void main(String[] args){
 8         /*
 9         //计数器的初始化
10         int i = 1;
11         //循环条件的判断
12         while(i <=100){
13             System.out.println(i);
14             //计数器的累加
15             
16             i++;
17         }
18         */
19         for(int i = 1; i <= 100; i++){
20             System.out.println(i);
21         }
22         
23     }
24     
25 }
Demo_for.java
 1 class Demo_for2{
 2     /**
 3         示例:打印从1到100之间所有偶数和
 4         
 5     */
 6     
 7     
 8     public static void main(String[] args){
 9         //定义一个结果变量
10         int sum = 0;
11     
12     
13         for(int i = 1; i <= 100; i++){
14             if(i %2 == 0){
15                 sum +=i;
16             }
17     
18         }
19         System.out.println(sum);
20     }
21     
22 }
Demo_for2.java
 1 class Demo_for3{
 2     /**
 3         示例:打印5行5列的*
 4                 *****
 5                 *****
 6                 *****
 7                 *****
 8                 *****
 9     */
10     
11     
12     public static void main(String[] args){
13         //外层是打印5行
14         for(int j = 0; j < 5; j++){
15                 //内层是打印一行
16             for(int i = 0; i < 5; i++){
17                 //打印一个*但是不换行
18                 System.out.print("*");//不换行去掉ln
19             }
20             System.out.println();
21         }
22         
23     }
24     
25 }
Demo_for3.java
 1 class Demo_for4{
 2     /**
 3         示例:打印乘法口诀
 4                     1*1=1    2*1=2    3*1=3
 5                     1*2=2    2*2=4    3*2=6
 6                     1*3=3    2*3=6    3*3=9
 7                     
 8                     把*前面的作为列
 9                     把*后面的作为行
10                     
11                     然后再稍作修改即可得99乘法表
12     */
13     
14     
15     public static void main(String[] args){
16         //外层作为行循环
17         for(int i = 1; i <= 9; i++){
18             //内层作为列循环
19             for(int j = 1; j <= i ; j++){
20                 
21                 System.out.print(j+"*"+i+"="+(j*i)+"\t");
22             }
23             
24             System.out.println();
25         }
26 
27     }
28     
29 }
Demo_for4.java

5.break和continue

break用来跳出循环和switch

continue只是跳过此次循环,但是还会继续执行循环结构

例子:

 1 class Demo_break{
 2     
 3     /**
 4         需求:运动会上跑5000米,跑到第三圈时,抽筋了退赛
 5     
 6     */
 7 
 8     public static void main(String[] args){
 9         /*
10         for(int i = 1;i <= 10; i++){
11             //如果跑到第三圈岔气了
12             if( i == 3){
13                 
14                 System.out.println("岔气了退出比赛");                
15                 //终止当前的循环
16                 break;
17             }
18             
19             
20             System.out.println("我跑了第"+i+"圈");
21         }
22         
23         */
24         int i = 1;
25         while(i <= 10){
26             //如果跑到第三圈岔气了
27             if( i == 3){
28                 
29                 System.out.println("岔气了退出比赛");                
30                 //终止当前的循环
31                 break;
32             }
33         
34             
35             System.out.println("我跑了第"+i+"圈");    
36              i++;
37         }        
38         
39         System.out.println("程序结束");
40     }
41 
42 }
Demo_break.java          
 1 class Demo_continue{
 2     
 3     /**
 4         需求:一周上五天班,然后周三请一天假
 5     
 6     */
 7 
 8     public static void main(String[] args){
 9         
10     for(int i = 1; i <=5; i++){
11         if(i == 3){
12             System.out.println("星期"+i+"请假");
13             //终止本次循环,但是后面的循环要继续执行
14             continue;            
15         }
16         
17         System.out.println("星期"+i+"上班");
18     }
19         
20         System.out.println("程序结束");
21     }
22 
23 }
Demo_continue.java

 

posted @ 2020-04-03 01:20  寄生的鱼  阅读(103)  评论(0)    收藏  举报