為什么前者沒有輸出結果,而后者有呢
public class HelloWorld {
? ? public static void main(String[] args) {
? ? ? ? int sum=0;
? ? ?
for(int i=1;i<=10;i++){
? ?sum=sum+i;
? ?if(sum>20){
? ? ?break;
? ? ? System.out.println(sum);
? ?}
?
}
}?
}
與
public class HelloWorld {
? ? public static void main(String[] args) {
? ? ? ? int sum=0;
? ? ?
for(int i=1;i<=10;i++){
? ?sum=sum+i;
? ?if(sum>20){
? ? ? ? ?
? ? ?System.out.println(sum);
? ? ?break;
? ?}
?
}
}?
}
存在區別
2017-01-20
java是按照順序結構讀取的,就是在前面的代碼會先執行,第一個你把break放在print前面,程序執行到break 就退出了,沒有執行到print,下面的是print之后再退出的,所以上面沒有打印出來
2017-01-20
因為程序先執行的break,所以后面的輸出結果語句就不執行了
2017-01-20
這兩個的意圖都是實現一個1-6的累加,當sum>20時前者執行break直接跳出了該語句,不會執行下面的System.out.println();后者則是執行了輸出語句再break。
2017-01-20
循環里break后不執行了, ?eclipse提示 unreachable code, 不能執行到的代碼。 ? 類似語法錯誤,程序錯誤哪里有輸出。