[英]Finding the minimum of 3 variables using an if statement
我正在学习如何使用 BlueJ,并且正在努力将其代码写入 output 用户输入的最小数字。 任何帮助,将不胜感激!
import java.util.Scanner;
public class FindMin
{
public static void main(String[] args)
{
System.out.print("Program to compare three numbers");
System.out.println("and output minimum value entered");
Scanner input = new Scanner(System.in);
System.out.print("Enter 1st number: ");
int number1;
number1 = input.nextInt();
System.out.print("Enter 2nd number: ");
int number2;
number2 = input.nextInt();
System.out.print("Enter 3rd number: ");
int number3;
number3 = input.nextInt();
int minimum;
if (number2 > number1 | number3 > number1){
minimum = number1;
}
else if (number1 > number2 | number3 > number2){
minimum = number2;
}
else if (number1 > number3 | number2 > number3){
minimum = number3;
}
System.out.print("The minimum of the numbers entered is ");
System.out.println(minimum);
System.out.println();
}
}
|
是按位或运算符。 你想要&&
,逻辑与运算符。 “如果number2
大于number1
并且number3
大于number1
。” 此外,您不希望在最后一个else
上有任何if
,因为到那时您已经排除了三种可能性中的两种,并且只剩下一种可能性。 所以:
if (number2 > number1 && number3 > number1){
// -------------------^^
minimum = number1;
}
else if (number1 > number2 && number3 > number2){
// -------------------^^
minimum = number2;
}
else /* No `if` here */ {
minimum = number3;
}
您还可以import java.util.*
女巫随附java.lang.Math
。 这允许您使用来自Math
的方法,例如Math.min
。
import java.util.Scanner;
public class FindMin
{
public static void main(String[] args)
{
System.out.print("Program to compare three numbers");
System.out.println("and output minimum value entered");
Scanner input = new Scanner(System.in);
System.out.print("Enter 1st number: ");
int number1;
number1 = input.nextInt();
System.out.print("Enter 2nd number: ");
int number2;
number2 = input.nextInt();
System.out.print("Enter 3rd number: ");
int number3;
number3 = input.nextInt();
int minimum = Math.min(Math.min(number1, number2), number3);
System.out.print("The minimum of the numbers entered is ");
System.out.println(minimum);
System.out.println();
}
}
或者你可以这样做
int minimum = 0;
if(number1 < number2){
minimum = number1;
}else{
minimum = number2;
}
if(number3<minimum){
minimum = number3;
}
尝试以下方法并将您的三个数字作为参数传递。
public static int getMinimumNumber(int no1, int no2, int no3) {
return no1 < no2 ? (no1 < no3 ? no1 : (no2 < no3 ? no2 : no3)) : (no2 < no3 ? no2 : no3);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.