我不知道如何制作它以便我的代码可以使用来自用户输入的负整数,任何建议都可以帮助谢谢!
import java.util.Scanner;
public class MyScannerProject {
public static void main(String[] args) {
int max = 0;
Scanner sc = new Scanner(System.in);
for (int j = 0; j < 10; j++) {
System.out.println("Please enter a number ");
int a = sc.nextInt();
if (max < a) {
max = a;
}
System.out.println("Your max is " + max);
}
}
}
答案 0 :(得分:2)
Integer类中有一个特殊的常量值,特别是为此目的。它存储了Integer实例可以存储的最小值,这样无论何时将任何可能的int值与它进行比较,它都将大于或等于它,永远不会更小。
public static final int MIN_VALUE = 0x80000000;
在你的程序中,如果我们只用这个值而不是0来初始化 max ,它将开始给出最大值为true
当然,正如@ScaryWombat所说,在if条件之后摆脱分号。
int max = Integer.MIN_VALUE;
Scanner sc = new Scanner(System.in);
for (int j = 0; j < 10; j++) {
System.out.println("Please enter a number ");
int a = sc.nextInt();
if (max < a) {
max = a;
}
}
System.out.println("Your max is " + max );
答案 1 :(得分:0)
您可以使用尽可能少的数字进行初始化,或者只是将第一个数字作为最小值,然后将其与您作为输入的后续数字进行比较。
int max = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a number ");
max = sc.nextInt();
for (int j = 0; j < 9; j++) { // 1 less than you would normally do
System.out.println("Please enter a number ");
int a = sc.nextInt();
if (max < a) {
max = a;
}
}
System.out.println("Your max is " + max );
如果你看一下这段代码......我们可以这样做:-(只是一种不同的,更简单的方式来实现我之前展示过的想法)
int max = 0;
Scanner sc = new Scanner(System.in);
for (int j = 0; j < 10; j++) {
System.out.println("Please enter a number ");
int a = sc.nextInt();
if(i == 0) max=a;
if (max < a) {
max = a;
}
}
System.out.println("Your max is " + max );
与许多评论和回答一样,您可以使用Integer.MIN_VALUE
初始化max
。此解决方案只是实现相同目标的另一种方式。