1. 程式人生 > 其它 >面對祖傳屎山程式碼應該採用的5個正確姿勢

面對祖傳屎山程式碼應該採用的5個正確姿勢

流程控制
流程控制語句分類
順序結構:是程式中最簡單的流程控制,沒有特定的語法結構,按照程式碼先後順序,依次執行
分支結構if,switch
迴圈結構for,while,do... while

if語句
格式1:
if(關係表示式){語句體;}
執行流程,首先判斷關係表示式的值,如果為true則,則執行中括號的語句體,否則不執行,然後執行後面的語句內容
格式2:
if(關係表示式){語句體1;}else{語句體2;}
執行流程:首先計算關係表示式的值,如果為ture執行語句體1,否則執行語句體2,然後執行後面的語句內容
格式3:
if(關係表示式1){語句體1;}else if(關係表示式2){語句體2;}...else{語句體n}
執行流程:首先判斷關係表達1的值如果為ture執行語句體1,否則判斷關係表示式2的值,如果為ture ,執行語句體2,....,最後如果所有關係表示式都不滿足,執行語句體n,然後執行後面的語句內容

switch語句
格式:switch(表示式){case 值1:語句體1;break;case 值2:語句體2;break;...;default:語句體n;[break;]}
說明:表示式可以是byte,short,char,int;jdk5後可以是列舉,jdk7以後可以是string;case後面的是要和表示式比較的值;switch表示中斷,結束的意思,用來結束switch語句;default表示所有情況都不滿足的時候執行,和if的else相似
執行流程:首先計算表示式的值,再挨個和case中的值比較,如果有值相同的,則執行相應的語句,在遇到break就會結束,如果所有case的值和表示式的值都不一樣,則執行default裡面的程式體,然後程式結束掉


case穿透:在switch語句中,如果不寫break,會出現穿透現象,在不判斷case值的情況,向下執行,直到遇到break,或整個switch語句結束


for迴圈語句
格式:for(初始化語句;條件判斷語句;條件控制語句){迴圈語句;}
執行流程:1執行初始化語句;2執行條件判斷語句,如果為false迴圈結束;如果為ture繼續執行;3執行迴圈語句;4執行條件控制語句;5回到2繼續執行

說明:初始化語句用於表示迴圈開啟的狀態,條件判斷語句用於表示迴圈反覆執行的條件,迴圈體語句用於表示迴圈的內容,條件控制語句用於表示迴圈每次變化的內容
語法:初始化語句,這裡可以是一條或多條,這些語句完成一些初始化操作;條件判斷語句,這裡是個布林值,判斷迴圈是否執行;迴圈語句,可以是任意結構,這將反覆執行;條件控制語句,這裡通常是一條語句,改變變數的值,從而控制迴圈結構是否繼續執行,如a++

案例:水仙花數
是一個三位數,數字的個位數十位數百位數的立方之和等於原數,如:371=27+343+1=371


while迴圈語句
基本格式:while(條件判斷語句){迴圈語句;}
完整格式:初始化語句;while(條件判斷語句){迴圈語句;條件控制語句;}
執行流程:1執行初始化語句;2執行條件判斷語句,如果為false結束迴圈,如果為true繼續執行迴圈語句;3執行迴圈語句;4執行條件控制語句;5回到2繼續

do while 迴圈語句
基本格式:do{迴圈語句;}while(條件判斷語句);
完整格式:初始化語句;do{迴圈語句;條件控制語句;}while(條件判斷語句);
執行流程:1執行初始化語句;2執行迴圈語句;3執行條件控制語句;4執行條件判斷語句,如果是false結束迴圈,如果是true繼續;5回到2繼續

三種迴圈的區別
1for迴圈和while迴圈先判斷條件是否成立,然後再決定是否執行迴圈體(先判斷後執行)
2do while ,先執行一次迴圈體,然後再判斷條件是否成立,是否繼續迴圈體(先執行後判斷)

for迴圈和while迴圈的區別
條件控制語句所控制的變數,因為歸屬for迴圈的語法結構,在迴圈結束後,不能繼續訪問
條件控制語句所控制的變數,對while迴圈來說不屬於迴圈結構,在while迴圈結束,還可以繼續使用變數

死迴圈的三種格式
for(;;){}
while(ture){}
do{}while(ture);

while的死迴圈經常用
命令提示符視窗可以用ctrl+c結束死迴圈


跳轉控制語句
continue 用在迴圈中,基於條件控制,跳過某次迴圈體的內容執行,繼續下一次執行
break 用在迴圈中,基於條件控制,終止迴圈體的內容執行,也就是說終止迴圈