[英]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.