亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

出什么問題了

出什么問題了

亂也 2016-06-09 22:20:39
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貢獻2條經驗 獲得超4個贊

break跳出的是離它最近的一個循環,這個程序中,離break最近的循環是if循環,而不是for循環,所以if循環跳出后,for循環依然在工作。

解決方法是:把

System.out.println(nums[i]);

移到上一個 } 里面,這樣繼續執行的for循環執行的是空語句。

當然解決的方法還有很多,樓主這里出現的問題是不了解break的終止循環的范圍。

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]:"+nums[i]);

			}
			//實際輸出的結果
			System.out.println(nums[i]);
		}
	}
}


查看完整回答
1 反對 回復 2016-06-09
  • 亂也
    亂也
    為什么前面的條件都不成立了?
  • 美得像一個遺憾
    美得像一個遺憾
    什么條件不成立?break是強制跳出循環,不管前面的條件成不成立。你可以用 斷點調試 調試你的代碼,或者用打印的方式調試。
?
沖啊

TA貢獻15條經驗 獲得超3個贊

你把if(j>3){break;}單獨放在ystem.out.println(nums[i]);前面,不要放在if條件 里,即:

if ((nums[i]>=0)&&(nums[i]<=100)){

? ?j++;

??? }

?if(j>3){

? ?break;

? ?}


這樣的話,檢沒到j>3即退出FOR循環

查看完整回答
反對 回復 2016-06-11
  • 2 回答
  • 0 關注
  • 1623 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號