《Java从入门到精通》第四章学习笔记

第4章 流程控制

一、条件语句

1、if语句

1 if(布尔表达式){
2     语句序列
3 }
4 /*
5 布尔表达式如果为true则执行if代码块中的语句序列;
6 反之则不执行。
7 */

2、if…else语句

 1 if(布尔表达式){
 2     语句序列
 3 }
 4 else{
 5     语句序列
 6 }
 7 /*
 8 布尔表达式如果为true则执行if代码块中的语句序列;
 9 反之则执行else代码块中的语句序列。
10 如果一段代码中有多处if..else,则每一个else总是与它上面最近的一个if相匹配。
11 */
 1 /*
 2 创建GetTerm类,在主方法中定义变量x,从控制台输入接受赋值,并通过if...else if多分支语句判断x的值决定输出结果。
 3 */
 4 import java.util.Scanner;
 5 public class GetTerm {
 6     public static void main(String[] args){
 7         Scanner scan=new Scanner(System.in);
 8         System.out.println("请输入一个整数:");
 9         int x=scan.nextInt();
10         if(x>1000){
11             System.out.println("x的值大于1000");
12         }else if(x>500){
13             System.out.println("x的值大于500,但小于1000");
14         }else if(x>100){
15             System.out.println("x的值大于100,但小于500");
16         }else {
17             System.out.println("x的值小于100");
18         }
19         scan.close();
20     }
21 }

3、switch多分支语句

 1 switch(表达式){   //表达式的值必须是整型或者字符型
 2 case 常量值1:      //这里常量值必须与表达式的值对应,下同
 3     语句序列1
 4     break;   //跳出switch语句块,如没有则会继续执行下一句
 5 case 常量值2:
 6     语句序列2
 7     break;
 8 ...
 9 default:   //当上述各case的常量值没有匹配时候则从此处执行
10      语句序列;
11      break;
12 }   
 1 import java.util.Scanner;
 2 public class Switch_Example {
 3     public static void main(String[] args){
 4         Scanner scan=new Scanner(System.in);
 5         System.out.println("请输入你的姓名:");
 6         String name=scan.nextLine();
 7         System.out.println("请输入你的专业编号(0~9):");
 8         int majorLanguage=scan.nextInt();
 9 
10         switch(majorLanguage){
11         case 0:
12         case 1:
13         case 2:
14             System.out.println("恭喜你,"+name+"你被分配到办公室");
15             break;
16         case 3:
17         case 4:
18         case 5:
19         case 6:
20             System.out.println("恭喜你,"+name+"你被分配到总工办");
21             break;
22         case 7:
23         case 8:
24         case 9:
25             System.out.println("恭喜你,"+name+"你被分配到财务处");
26             break;
27         default:
28             System.out.println("抱歉,你未被录用");     
29         }
30         scan.close();
31     }
32 }

二、循环语句
1、while语句

while(条件表达式){   //条件表达式必须为布尔类型
  语句序列;          //条件表达式为true则执行该语句序列
}                 //否则退出循环

2、do…while语句

do {
    语句序列;
}while(条件表达式)  
/*与while语句的区别可以从顺序上理解出,即便条件表达式为false,也会执行一次do代码块里的指令*/

3、for语句

for(表达式1;表达式2;表达式3){
    语句序列;
}
/*
表达式1:初始化工作
表达式2:为布尔类型,用于判断循环条件
表达式3:改变循环条件判断参数
执行流程:先通过表达式1进行初始化设置工作,再判断表达式2,如果为true则执行语句序列,再通过表达式3改变循环条件判断参数;进入第二次循环时候先判断表达式2,如果为true则执行语句序列,再通过表达式3改变循环条件判断参数;直至某次判断表达式2为false则跳出循环。
*/
 1 //用for循环输出九九乘法表
 2 public class MultiTable {
 3     public static void main(String[] args){
 4         for(int i=1;i<10;i++){
 5             for(int j=1;j<i+1;j++){
 6                 System.out.println(j+"*"+i+"="+j*i+" ");
 7             }
 8             System.out.println();  //换行
 9         }
10     }
11 }

4、foreach语句

for(元素变量x:遍历对象obj){
     语句序列(一般会对x有操作)
}
/*foreach是for语句的特殊简化格式,从上述示例代码可以看出foreach并不是所用的关键字,而是习惯上对这种循环的称谓。*/
 1 //使用foreach语句读取一位整型数组各元素
 2 public class Repetition {
 3     public static void main(String[] args){
 4         int arr[]={1,3,4,7,8,10};
 5         System.out.println("一维数组中各元素分别为:");
 6         for(int x:arr){
 7             System.out.println(x+"	");
 8         }
 9     }
10 }

三、跳转语句
1、break语句
break只可以用在switchforwhiledo..while循环语句中,用于强行退出整个循环体。
2、continue语句
continue只能用在forwhiledo…while循环语句中,用于直接跳出当前循环进入下一次循环。

 1 //计算1~100各偶数之和
 2 public class ContinueDemo {
 3     public static void main(String[] args){
 4         for(int sum=0,i=0;i<101;i++){
 5             if(i%2==0){
 6                 sum+=i;
 7             }else {
 8                 continue;
 9             }
10             if(i==100){
11                 System.out.println("0~100内偶数之和是"+sum);
12             }
13         }
14     }
15 }
 1 public class CatchBird {
 2     public static void main(String[] args){
 3         String[] birdArray=new String[]{"麻雀","鸽子","百灵","布谷","老鹰","鹦鹉","老鹰","翠鸟","斑鸠","老鹰","黄鹂"};
 4         int laoYingNumber=0;
 5         for(String birdString:birdArray){
 6             if(birdString.equals("老鹰")){
 7                 System.out.println("一只老鹰已经被我抓起来了");
 8                 laoYingNumber++;
 9                 continue;
10             }
11             System.out.println("发现了一只"+birdString);     //这里当然也可以用if-else
12         }
13         System.out.println("总共抓住了"+laoYingNumber+"只老鹰");
14     }
15 }
 1 //计算1+1/2!+1/3!+...+1/20!的值
 2 public class x1 {
 3     public static void main(String[] args){
 4         double sum=0;
 5         long a=1L;
 6         for(long i=1L;i<21;i++){
 7             for(long j=1L;j<=i;j++){
 8                 a=a*j;              
 9             }
10             sum+=1/(double)a;          //强制浮点运算
11             a=(long)1;                 //重置为长整型数值
12             System.out.println(sum);
13         }
14     }
15 }
原文地址:https://www.cnblogs.com/tsembrace/p/4574566.html