break章節(jié)的一個問題
public class HelloWorld {
??? public static void main(String[] args) {
??
??
??int sum = 0;
??
??
??for (int i = 1; i <= 10; i++) {
???
???
???sum = sum + i;
???
???
???
????
????System.out.print("當(dāng)前的累加值為:" + sum);
???if (sum>20) {?
???
????break;
???}
??}
?}
}
輸出結(jié)果為當(dāng)前的累加值為:1當(dāng)前的累加值為:3當(dāng)前的累加值為:6當(dāng)前的累加值為:10當(dāng)前的累加值為:15當(dāng)前的累加值為:21
為什么會這樣??
2017-11-22
因為你的System.out.print("當(dāng)前的累加值為:" + sum);這一句在for循環(huán)里面,第一次i=1;輸出累加值sum=0+1=1;如果累加值大于20就進(jìn)入if條件語句,沒有大于,所以再執(zhí)行一次for循環(huán),此時i=2,i<=10,滿足條件,進(jìn)入循環(huán)sum=1+2=3;然后又輸出累加值為3;之后就是一直輸出到輸出為21的時候就進(jìn)入了if條件判斷,然后break的作用是退出指定循環(huán)也就是for循環(huán)。
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.print("當(dāng)前的累加值為:" + sum); ?
? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
2018-03-26
大于20的時候輸出,為什么不能選擇28或30或40的時候輸出,而是一旦超過20就輸出呢
2017-11-22
你的問題是指不應(yīng)該打印“當(dāng)前的累加值為:21”嗎?如果是的話,if條件和打印順序換一下即可