分支結構
if和switch
if(布爾值){}…else if(布爾值){}…else{}
switch(表達式){case:…break}//表達式只支持四中類型byte short int char
區別
if相當於判斷題,只有兩個關鍵字if else。if能判斷區間,運算結果是布爾的,switch不行。if是順序執行。當是具體數值,數值不多,用switch,switch較if高效。
switch相當於選擇題,如果default在前面也不會先走他,先走有具體選項的。
switch語句結束有兩種,一個是大括號結束,一個是break(所以case要break)。如果沒有break,他執行完了第一case,後不會判斷直接往下執行,直到遇到結束的大括號或break
while和do while
while(條件){}
do{}while(條件)
區別
while先判斷條件,只有條件滿足才只想循環條件
do while 先執行循環條件,再判斷條件,條件滿足,再執行循環體,
do while無論條件是否滿足,先執行一遍
for
for(初始化表達式;循環條件表達式;循環後的操作表達式){ }
區別
while和for有什麼不同
變量的作用範圍,讀到for語句創建出來x,離開了for的大括號,之後就消失了在內存中釋放了。而while則會一直存在。
總結
什麼時候使用循環結構,當對某些語句執行多次時,就要使用循環結構
for和while可以互換,如果需要定義循環增量,用for更合適
如果一變量,這個變量數值變化,用循環操作變量,自增好多次,這個變量下面還會用,則用while
// 無限循環的最簡單表現形式
for(;;){}
while(true){}
嵌套for循環
打印一個這樣的圖案
//練習2,打印等腰三角形
for(int y=0;y<5;y++) {
//空格是尖朝下,改變初始化值,讓初始化隨外循環變化
for(int z=y;z<5;z++) {
System.out.print(" ");
}
//星號是尖朝上,可以改變條件,讓條件隨着外循環變化
for(int s=0;s<=y;s++) {
System.out.print("* ");
}
System.out.println();
}