[英]find minimum value using a for loop
我試圖從用戶的輸入中獲取10個整數,並使用for
循環查找最小值。
我正在努力正確地編寫if
語句。 應該采用第一個輸入並使之最小,然后將第二個輸入與之比較。
我的最終打印語句僅打印最后輸入的數字。
Scanner scan = new Scanner(System.in);
int smallest = 0;
int number = 0;
for (int i = 1; i <= 10; i++) {
System.out.print("Enter a number > ");
number = scan.nextInt();
if (number < smallest) {
smallest = number;
} else {
smallest = number;
}
}
System.out.println("The minimum is " + smallest);
您的問題之一是,您從smallest = 0
,這意味着僅當輸入之一小於零時,它才會更改。 有兩種方法可以解決此問題。 以太網
int smallest = Integer.MAX_VALUE;
要么
smallest
的條件更改為if (number < smallest || i == 1 )
此外,如果if
子句未觸發,您也不想更新smallest
的內容,因此請刪除else
塊。
有了這個:
if (number < smallest) {
smallest = number;
} else {
smallest = number;
}
無論數字是否較小,您始終會覆蓋最小的值。
完全刪除else塊,它將起作用。
還要編輯:不要使用0作為默認值。 將您讀取的第一個值稱為“原始最小”
System.out.print("Enter a number > ");
int smallest = scan.nextInt();
int number = 0;
for (int i = 1; i <= 9; i++) {
System.out.print("Enter a number > ");
number = scan.nextInt();
if (number < smallest) {
smallest = number;
}
}
試試這個
Scanner scan = new Scanner(System.in);
int smallest = 0;
int number = 0;
for (int i = 1; i <= 10; i++) {
System.out.print("Enter a number > ");
number = scan.nextInt();
if (i == 1){
smallest = number;
}
if (number < smallest) {
smallest = number;
}
}
System.out.println("The minimum is " + smallest);
兩個問題。
1-您的if應該看起來像這樣(刪除else塊):
if (number < smallest) {
smallest = number;
}
2-您應該將最小值初始化為一個非常大的數字,以便看到的第一個數字始終小於該數字:
int smallest = Integer.MAX_VALUE;
解決方案:刪除您的else
語句。
if (number < smallest) {
smallest = number;
}
沒有else
。 使用else
的用法,每次將smallest
設置為輸入的值。
這是我對第一個smallest
變量進行賦值的偏好。 在loop
開始之前,請分別對smallest
對象進行分配。 這樣,我們就確切地知道哪個是要分配給smallest
的第一個語句,並且正如其他人先前所說的,擺脫了for loop
if
語句的else塊。
else
塊導致OP所說的問題是打印最后輸入的數字 。 N現在,由於提示在2個不同的位置顯示,因此還為“提示”添加了String變量,因此可以重復使用它。 注意循環計數從10減少到9,以僅提示用戶輸入10次。
Scanner scan = new Scanner(System.in);
int smallest = 0;
int number = 0;
String prompt = "Enter a number > ";
// First user prompt
// and first assignment to 'smallest'
System.out.print(prompt);
smallest = scan.nextInt();
for (int i = 1; i <= 9; i++) {
System.out.print(prompt);
number = scan.nextInt();
if (number < smallest) {
smallest = number;
}
}
System.out.println("The minimum is " + smallest);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.