[英]Get the maximum number in Java
我需要获得最多三个整数,但是当第二个数字小于零时,我的代码将不会给出输出。
package main;
import java.util.Scanner;
public class Max {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
int c=in.nextInt();
int max;
if(a>b){
if(a>c)max =a;
else max =c;
}
else{
if(b>c)max=b;
else max=c;
System.out.println(max);
}
}
}
它通过了其他情况的考验。 你能告诉我为什么会这样吗?
这是因为您有println语句。 在第二个条件中,您希望它位于if语句之外。
public class Max {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
int c=in.nextInt();
int max;
if(a>b){
if(a>c)max =a;
else max =c;
}
else{
if(b>c)max=b;
else max=c;
}
}
System.out.println(max);
}
您的print语句位于else块内,因此仅在转到else分支时才会执行。 将其移到else块之外。
...
else {
if(b>c)
max=b;
else
max=c;
}
System.out.println(max);
在存储您的int值的List
上使用Collections.max()
。
package main;
import java.util.Scanner;
public class Max {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
Scanner in = new Scanner(System.in);
int a= in.nextInt();
list.add(a);
int b= in.nextInt();
list.add(b);
int c= in.nextInt();
list.add(c);
System.out.println("Largest: " + Collections.max(list));
}
}
我建议写单独的方法
public int max(int a, int b) {
return Math.max(a, b);
}
并称它为
max(a, max(b, c));
这样代码更干净
将数字输入数组,而不是三个单独的变量。 那么您可以使用以下方法:
public int getLargest(int[] nums){
int largest = Integer.MIN_VALUE;
if(nums.length == 0)
return -1;
for(int i : nums){
if(i > largest)
largest = i;
}
return largest;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.