java學習lesson 03
Java三大流程控制
* 順序控制:代碼從上到下依次執行;
* 條件控制;
* 循環控制。
條件控制:條件具有真假的特性,而且只可能為真或為假。
* if語句
import java.util.Scanner; public class ScoreDemo { public static void main(String[] args){ System.out.println("請輸入你的成績:"); Scanner sc=new Scanner(System.in); int score=sc.nextInt(); // 比較表達式無論簡單還是復雜,結果必須是boolean類型 if(score>=90) System.out.println("優秀!"); //if語句控制的語句體如果是一條語句,大括號可以省略; if(score>=80&&score<90){ System.out.println("良好!"); } if(score>=60&&score<80){ System.out.println("及格!"); } if(score>=0&&score<60){ System.out.println("不及格!"); } } }
* if……else if……else if(可接N個else if)……else語句
最後一個else可以省略,但建議保留else,以保證程序的完整性,提高可讀性。
import java.util.Scanner;//導包;只要不是java.long包下的類都要導包; public class AgeDemo{ public static void main(String[] args){ //鍵盤錄入 System.out.println("請輸入你的年齡:"); Scanner sc=new Scanner(System.in); int age=sc.nextInt(); //錄入的年齡進入循環進行條件匹配 if(age>60){ System.out.println("老年人!!"); } else if(age>=40&&age<60){ System.out.println("中年人!!"); } else if(age>=18&&age<40){ System.out.println("少年!!"); } else{ System.out.println("未成年!!"); } } }
* switch(判斷值){
case 值:實現的代碼;
break;
case 值:實現的代碼;
break;
case 值:實現的代碼;
break;
default:實現的代碼;
break;
}
switch後面的()不可以省略;
switch後面跟的整形或字符型;
case值後加:只能是字面常量(1,2,‘a‘)或常量表達式(2*3)
break;跳出匹配的條件;break如果省略程序會一直執行下去直到遇到break才跳出循環
default:當匹配不到任何條件時執行的內容
public class SwitchDemo{ public static void main(String[] args){ int food=5; switch(food){ case 1: case 2: case 3:System.out.println("今天吃餃子!!"); break; case 4:System.out.println("今天吃米飯!!"); break; case 5:System.out.println("今天不準吃飯!!"); break; case 6:System.out.println("今天有人請客!!"); break; case 7:System.out.println("今天吃面!!"); break; } } }
* 表達式的類型:
int a = 5;
a*3 (結果15)
表達式的輸出類型為表達式計算結果的類型
double num = 1.5;
num * 4 (6.0, 表達式最終被當做的類型就是double類型)
循環控制
* while 循環
結構:
while(循環條件){
//循環實現的代碼
}
* 求1-50(倆邊都閉區間), 所有偶數的和.
public class EvenNumDemo{ public static void main(String[] args){ int arr[]=new int[50]; int sum=0; int i=0; while(i<arr.length){ arr[i]=(i+1); if((arr[i]%2)!=0){ sum+=arr[i]; } i++; } System.out.println("1-50的偶數之和為:"+sum); } }
* do .. while循環
結構:
do{
//實現的代碼
}while(循環的條件);
* for 循環
使用率最高的;
結構:
for(循環變量初始化 ;循環條件判斷; 循環變量的改變){
//循環需要實現的邏輯
}
* 求1-100自然數,其中所有偶數的和,所有奇數的和,並且求所有偶數的和與所有奇數的和的差.
public class NumSumDemo{ public static void main(String[] args){ int MAX_NUM=100; int evenSum=0; int oddSum=0; int poor=0; int j=0; for(int i=0;i<MAX_NUM;i++){ j=i+1; if((j%2)!=0){ oddSum+=(i+1); //余2不等於0:奇數和 }else{ evenSum+=(i+1); //偶數和 } } poor=(evenSum-oddSum); System.out.println("1-100偶數和為:"+evenSum); System.out.println("1-100奇數和為:"+oddSum); System.out.println("1-100偶數和與奇數和的差為:"+poor); } }
* foreach 循環(不是一個常規的java提供的循環的方式,他只是java提供的一種語法糖)
foreach: 對一種循環方式的命名,常規循環的簡化方式。
* 語法糖: 針對基本的語法,提供了一種簡化的實現方式。
* 倆個關鍵字: 應用到循環控制中,continue的含義是跳出當次的循環,break的含義是跳出整個循環。
循環的嵌套:
public class StarDemo{ public static void main(String[] args){ int MAX_NUM=4; for(int i=MAX_NUM;i>=0;i--){ for(int j=0;j<i;j++){ System.out.print("*"); //輸出,不會換行 } System.out.println("*"); //輸出,會默認換行 } } }
java學習lesson 03