import ?java.util.Arrays;public class OL {? public static void main(String[] args){ ?int j=1; ? ?int [] nums={89,-23,64,91,1819,818,55,152,713}; ? ?Arrays.sort(nums); ? ?for (int i=nums.length-1; i>=0; i--){ ? ?if ((nums[i]>=0)&&(nums[i]<=100)){ ? ?j++; ? ?if(j>3){ ? ?break; ? ?} ? ?} ? ? ? System.out.println(nums[i]); ? ?}? }} ? ??
2 回答
已采納

美得像一個遺憾
TA貢獻(xiàn)2條經(jīng)驗 獲得超4個贊
break跳出的是離它最近的一個循環(huán),這個程序中,離break最近的循環(huán)是if循環(huán),而不是for循環(huán),所以if循環(huán)跳出后,for循環(huán)依然在工作。
解決方法是:把
System.out.println(nums[i]);
移到上一個 } 里面,這樣繼續(xù)執(zhí)行的for循環(huán)執(zhí)行的是空語句。
當(dāng)然解決的方法還有很多,樓主這里出現(xiàn)的問題是不了解break的終止循環(huán)的范圍。
import??java.util.Arrays; public?class?OL{ public?static?void?main(String[]?args){ int?j=1; int?[]?nums={89,-23,64,91,1819,818,55,152,713}; Arrays.sort(nums); for?(int?i=nums.length-1;?i>=0;?i--){ if?((nums[i]>=0)&&(nums[i]<=100)){ j++; if(j>3){ break; } //這是你希望得到的結(jié)果 System.out.println("nums[i]:"+nums[i]); } //實際輸出的結(jié)果 System.out.println(nums[i]); } } }

沖啊
TA貢獻(xiàn)15條經(jīng)驗 獲得超3個贊
你把if(j>3){break;}單獨放在ystem.out.println(nums[i]);前面,不要放在if條件 里,即:
if ((nums[i]>=0)&&(nums[i]<=100)){
? ?j++;
??? }
?if(j>3){
? ?break;
? ?}
這樣的話,檢沒到j(luò)>3即退出FOR循環(huán)
添加回答
舉報
0/150
提交
取消