問題是,NO如果給定的陣列有任何偶數元素并且YES所有元素都是奇數,我必須列印,但如果我的代碼NO在此之后列印,它只會列印NO。
給定
t= 總測驗用例
n= 每個陣列的長度當然還有
n元素
輸入
2
5
1 2 5 4 3
1
7
輸出
NO
NO
預期產出
NO
YES
以下是我的代碼
import java.util.Scanner;
public class dsj {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while (t-- > 0){
int n = sc.nextInt();
boolean k = true;
for (int i = 0; i < n; i ) {
int x = sc.nextInt();
if (x % 2 == 0) {
k = false;
break;
}
}
if (k)
System.out.println("YES");
else
System.out.println("NO");
}
sc.close();
}
}
請告訴我我做錯了什么
uj5u.com熱心網友回復:
一旦您的應用程式找到一個偶數,它就會中斷回圈,這意味著它不再讀取該行的其余部分。下一次呼叫將從上一次停止的地方開始并使用該輸入。
因此,當讀取第二個“2”時,內部回圈中斷并列印“NO”。對于下一個回圈,讀取“5”,這意味著應該讀取 5 個值。然后讀取值“4”,這又是一次,代碼再次發出“NO”。永遠不會消耗值 3、1 和 7。
它按設計作業。為了更好地理解,添加大量 System.out.println 陳述句,或者學習如何使用除錯器。
但要回答你的問題:
第一個 int 指定要讀取的資料集數量。每個資料集的第一個 int 指定集合中有多少資料值。其余數字類似于資料集。
您的問題是,當您遇到偶數時,您不會讀取資料集的其余部分,并且您的程式將下一個整數視為下一個資料集長度的說明符。您需要更改的是,即使遇到偶數,您也必須從掃描儀中消耗足夠的整數,以便在開始讀取下一個資料集之前讀取資料集。這種更改可以像洗掉break.
uj5u.com熱心網友回復:
列印是或否后,您應該再次將布林值重置為 true
編輯:@Suman Saurabh 在這里是正確的
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/516172.html
標籤:爪哇布尔值
上一篇:如何更改img標簽內的svg顏色
