程序--流程控制(java,golang)

為了闡述這個換題,我們先看一個笑話:老婆給當程序員的老公打電話:“下班順路買一斤包子帶回來,如果看到賣西瓜的,買一個。”當晚,程序員老公手捧一個包子進了家門……老婆怒道:“你怎麼就買了一個包子?”老公答曰:“因為看到了賣西瓜的。從這個笑話就可以程序的分支語句,當一個條件滿足的時候,程序自動執行條件滿足的區塊執行,自然會跳過其它代碼。

代碼一(java):

//代碼一:
int i=0;
if(true){
System.out.println(i);
int c=1;
}
System.out.println(i);
System.out.println(c); //報錯
//代碼二:
for (int b=0;b<10;b++){
System.out.println(b);
}
System.out.println(b); //報錯

我們通過報錯點,可以知道,在if 運行塊中,可以使用之前已經申明的變量,而if塊中申明的代碼不可以在外面使用,通過這個段代碼知道變量的可見性。

代碼二(java):

int A=0;
do {
System.out.println("執行一次A");
}while (A>0);
System.out.println("*****************************1");
int B=0;
while (B>0){
System.out.println("執行一次B");
}
System.out.println("*****************************2");
int i=0;
for (;;){
i++;
System.out.println("執行一次C");
if(i<10){
break;
}
}

System.out.println("*****************************3");

執行結果:

執行一次A
*****************************1
*****************************2
執行一次C
*****************************3

do while和while do的區別:do while 先執行一次然後在判斷,而while do是先判斷在執行。通過打印“c”結果,我們可以知道for作為循環控制時候,默認的會打第二個執行條件設置true。

代碼三:

try{
int b1=10;
int c1=0;
int dd=b1/c1;
}catch (Exception e){
e.printStackTrace();
System.out.println("異常");
}finally {
System.out.println("最終釋放");
}

打印結果:

java.lang.ArithmeticException: / by zero
at test.testss.main(testss.java:49)
異常
最終釋放

我在實際工作中,會常常把try catch視為流程控制,常常用於服務器回收資源和錯誤處理。

前面說到了do while和while do,在golang語音中是原始語法沒有的,需要使用for來實現。

golang代碼:

//while do實現
i:=0
for {
if(i>10){
break
}
fmt.Println("執行一次A")
i++;
}
//do while 實現
b:=0
for{
fmt.Println("執行一次B")
b++;
if(b>10){
break
}
}


分享到:


相關文章: