流程控制語句結構分爲:java
一、順序結構:從上到下依次執行atom
二、分支結構:多個分支選擇其中一個分支執行spa
三、循環結構:重複執行某些代碼字符串
執行過程:從上到下順序執行input
一、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);
鍵盤輸入代碼的三個步驟: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)
分支結構:根據條件選擇性的執行某些代碼
分爲:
一、條件判斷:if...else系列
二、選擇結構:switch...case系列
語法格式:
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知足時,纔會看裏面的條件判斷;
語法格式:
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("輸入有誤!");
}
循環結構:
「重複」執行某些代碼
循環結構的分類:
一、for循環
二、while循環
三、do...while循環
語法格式:
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);
}
語法格式:
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;
}
語法格式:
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);
原則:三種循環之間是能夠互相轉換的,都能實現循環的功能
建議(習慣上):當咱們次數比較明顯的時候,或者說從幾循環到幾的時候,通常先考慮for;
當循環體語句塊至少要執行一次的時候,通常先考慮do...while;
當循環條件比較明顯,可是次數不明顯,循環體語句塊也不是至少執行一次,那麼能夠考慮while結構;
三種循環結構都具備四要素:
(1)循環變量的初始化表達式
(2)循環條件
(3)循環變量的修改的迭表明達式
(4)循環體語句塊
一、break
用於:
(1)switch結構
做用:結束switch結構
(2)循環結構
做用:結束當前循環
二、continue
用於:
只能用於循環結構
做用:提早結束本次循環,繼續下一次循環
三、return(後面講)