自學Java第三章——《流程控制語句結構》

流程控制語句結構分爲:java

一、順序結構:從上到下依次執行atom

二、分支結構:多個分支選擇其中一個分支執行spa

三、循環結構:重複執行某些代碼字符串

3.1 順序結構

執行過程:從上到下順序執行input

3.1.1 輸出語句

一、System.out.print(輸出內容); #輸出內容後不換行string

二、System.out.println(輸出內容); #輸出內容後換行it

#輸出常量
System.out.print(1);
System.out.print('尚');
System.out.print(44.4);
System.out.print(true);
System.out.print("尚硅谷");

#輸出變量
int a = 1;
char c = '尚';
double d = 44.4;
boolean b = true;
String school = "尚硅谷";
System.out.print(a);
System.out.print(c);
System.out.print(d);
System.out.print(b);
System.out.print(school);

#輸出拼接結果
System.out.print("a = " + a);
System.out.print("c = " + c);
System.out.print("d = " + d);
System.out.print("b = " + b);
System.out.print("school = " + school);

3.1.2 輸入語句

鍵盤輸入代碼的三個步驟:for循環

一、準備Scanner類型的變量class

二、提示輸入xx變量

三、接收輸入內容

示例代碼:

//一、準備Scanner類型的變量
java.util.Scanner input = new java.util.Scanner(System.in);//System.in默認表明鍵盤輸入

//二、提示輸入xx
System.out.print("請輸入一個整數:");

//三、接收輸入內容
int num = input.nextInt();

//列出各類數據類型的輸入
int num = input.nextInt();
long bigNum = input.nextLong();
double d = input.nextDouble();
boolean b = input.nextBoolean();
String s = input.next();
char c = input.next().charAt(0);//先按照字符串接收,而後再取字符串的第一個字符(下標爲0)

3.2 分支結構

分支結構:根據條件選擇性的執行某些代碼

分爲:

一、條件判斷:if...else系列

二、選擇結構:switch...case系列

3.2.1 條件判斷

一、單分支結構

語法格式:

if(條件表達式){
   當條件表達式成立(true)時須要執行的語句塊;
}

執行過程:

條件成立,就執行{}其中的語句塊,不成立就不執行。

注意:

(1)if(條件表達式)中的條件表達式的結果必須是boolean類型

(2)當{}中的語句只有一個語句(簡單的語句,也能夠是一個複合語句)時,能夠省略{},可是咱們不建議省略

  //省略{}的狀況
if(score<0 || score>100)
System.out.println("輸入有誤!");//簡單的語句
else
//複合語句
if(score==100){
System.out.println("滿分");
}else if(score>=80){
System.out.println("優秀");
}else if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}

 

示例代碼:

int year = 2019;
int days = 28;
if(year%4==0 && year%100!=0 || year%400==0){
   days= 29;
}

 

二、雙分支結構

語法格式:

if(條件表達式){
   當條件表達式成立(true)時須要執行的語句塊1;
}else{
   當條件表達式不成立(false)時須要執行的語句塊2;
}

執行過程:

當條件表達式成立(true)時執行語句塊1,不然執行語句塊2

注意:

(1)if(條件表達式)中的條件表達式的結果必須是boolean類型

(2)當{}中的語句只有一個語句(簡單的語句,也能夠是一個複合語句)時,能夠省略{},可是咱們不建議

 

示例代碼:

int num = 10;
if(num%2==0){
   System.out.println(num + "是偶數")
}else{
    System.out.println(num + "是奇數")
}

 

三、多分支結構

語法格式:

if(條件表達式1){
   當條件表達式1成立的時候,執行的語句塊1;
}else if(條件表達式2){
   當條件表達式1不成立,
     條件表達式2成立的時候,執行的語句塊2;
}else if(條件表達式3){
   當條件表達式1不成立,
      條件表達式2也不成立,
     條件表達式3成立的時候,執行的語句塊3;
}
。。。
【else{
當以上全部的條件表達式都不成立,須要執行的語句塊n+1;
}

執行過程:

(1)多個條件順序往下判斷,若是上面有一個條件成立了,下面的條件就不看了

(2)多個分支也只會執行其中的一個

注意:

(1)每個條件表達式都必須是boolean值

(2)當{}中只有一個語句時,也能夠省略{},但不建議省略

(3)當多個條件是「互斥」關係(沒有重疊部分),順序能夠隨意;

當多個條件是「包含」關係(有重疊部分),順序不能隨意,小的在上,大的在下面

 

示例代碼:

   int score = 78;
if(score==100){
System.out.println("滿分");
}else if(score>=80){
System.out.println("優秀");
}else if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}

 

四、嵌套

執行過程:

當嵌套在if中,就是當外面的if成立時,纔會看裏面的條件判斷;

當嵌套在else中,就當外面的else知足時,纔會看裏面的條件判斷;

 

3.2.2 選擇結構

語法格式:

switch(表達式){
   case 常量值1:
       語句塊1;
       【break;
   case 常量值2:
       語句塊2;
       【break;】  
   。。。
  【default:
       語句塊n+1;
       【break;
   
}

執行過程:

(1)入口

①當switch(表達式)的值與case後面的某個常量值匹配,就從這個case進入;

②當switch(表達式)的值與case後面的全部常量值都不匹配,尋找default分支進入;

(2)一旦從「入口」進入switch,就會順序往下執行,直到遇到「出口」

(3)出口

①天然出口:遇到了switch的結束}

②中斷出口:遇到了break等

 

注意:

(1)switch(表達式)的值的類型,只能是:4種基本數據類型(byte,short,int,char),兩種引用數據類型(枚舉、String)

(2)case後面必須是常量值,並且不能重複

 

示例代碼:

int month = 4;
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("輸入有誤!");
}

3.3 循環結構

循環結構:

「重複」執行某些代碼

循環結構的分類:

一、for循環

二、while循環

三、do...while循環

3.3.1 for循環

語法格式:

for(;;){
   循環體語句塊;
   if(條件表達式){
  break;
  }
}
for(初始化表達式; 循環條件; 迭表明達式){
   循環體語句塊;(須要重複執行的代碼)
}

執行過程:

(1)初始化表達式;

(2)判斷循環條件;

(3)若是循環條件成立,先執行循環體語句塊;而後執行迭表明達式,再回到(2)...

(4)若是循環條件不成立,會結束for;

或者在當前循環中遇到break語句,也會結束當前for循環;

注意:

(1)for(;;)中的兩個;是不能多也不能少

(2)循環條件必須是boolean類型

 

示例代碼:

//遍歷1-100之間的偶數
for(int i=1; i<=100; i++){//每次循環的步幅是1
   if(i%2==0){
       System.out.println(i);
  }
}

//遍歷1-100之間的偶數
for(int i=2; i<=100; i+=2){//每次循環的步幅是2
   System.out.println(i);
}

 

3.3.2 while循環

語法格式:

while(循環條件){
   循環體語句塊;
}

經典的形式:
while(true){
循環體語句塊;
   if(條件表達式){
  break;
  }
}

執行過程:

(1)先判斷循環條件

(2)若是循環條件成立,就執行循環體語句塊;而後回到(1)

(3)若是循環條件不成立,就結束while循環;

若是在循環體語句塊中,遇到break,也會結束while循環;

注意:

(1)while(循環條件)中循環條件必須是boolean類型

 

示例代碼:

//遍歷1-100之間的偶數
int num = 2;
while(num<=100){
   System.out.println(num);
   num+=2;
}

 

3.3.3 do...while循環

語法格式:

do{
   循環體語句塊;
}while(循環條件);

執行過程:

(1)先執行一次循環體語句塊;

(2)判斷循環條件

(3)若是循環條件成立,再次執行循環體語句塊;而後回到(2)...

(4)若是循環條件不成立,就結束do...while循環;

若是在循環體語句塊中,遇到break,也會結束do...while循環;

注意:

(1)while(循環條件)中循環條件必須是boolean類型

(2)do{}while();最後有一個分號

(3)do...while結構的循環體語句是至少會執行一次,這個和for和while是不同的

 

示例代碼:

//從鍵盤輸入整數,統計正數、負數的個數,輸入0結束
java.util.Scanner input = new java.util.Scanner(System.in);

int num;
int positive = 0;
int negative = 0;
do{
   System.out.print("請輸入整數(0結束):");
   num = input.nextInt();
   
   if(num > 0){
       positive++;
  }else if(num < 0){
       negatvie++;
  }
}while(num!=0);

System.out.println("正數的個數:" + positive);
System.out.println("負數的個數:" + negatvie);

3.3.4 三種循環的選擇

原則:三種循環之間是能夠互相轉換的,都能實現循環的功能

建議(習慣上):當咱們次數比較明顯的時候,或者說從幾循環到幾的時候,通常先考慮for;

當循環體語句塊至少要執行一次的時候,通常先考慮do...while;

當循環條件比較明顯,可是次數不明顯,循環體語句塊也不是至少執行一次,那麼能夠考慮while結構;

 

三種循環結構都具備四要素:

(1)循環變量的初始化表達式

(2)循環條件

(3)循環變量的修改的迭表明達式

(4)循環體語句塊

 

3.3.5 跳轉語句

一、break

用於:

(1)switch結構

做用:結束switch結構

(2)循環結構

做用:結束當前循環

二、continue

用於:

只能用於循環結構

做用:提早結束本次循環,繼續下一次循環

三、return(後面講)

相關文章
相關標籤/搜索