所以我第一次学习java,似乎不知道如何正确设置while循环。
我的作业是写一个程序,读取整数,找出其中最大的一个,并计算它出现的次数。
但是我有两个问题和一些障碍。我不允许使用数组或列表,因为我们还没有学过,那么你如何在同一行中从用户那里获得多个输入。我把我能发的都发了。我也有一个问题,让循环工作。我不确定如何设置虽然条件不如创建一个sential价值。我试过,如果用户输入是0,我不能使用用户输入,因为它在while语句内。旁注:我认为根本不需要循环来创建这个,难道我不能使用if else语句链来完成这个吗?
package myjavaprojects2;
import java.util.*;
public class Max_number_count {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int count = 0;
int max = 1;
System.out.print("Enter a Integer:");
int userInput = input.nextInt();
while ( userInput != 0) {
if (userInput > max) {
int temp = userInput;
userInput = max;
max = temp;
} else if (userInput == max) {
count++ ;
}
System.out.println("The max number is " + max );
System.out.println("The count is " + count );
}
}
}
那么如何在同一行中获取来自用户的多个输入呢?
您可以像在代码中那样使用scanner和nextInput方法。但是,由于nextInt一次只读取一个以空格分隔的值,因此需要在while循环结束时重新分配userInput变量以更新当前处理值,如下所示。
int userInput = input.nextInt();
while ( userInput != 0) {
//all above logic
userInput = input.nextInt();
}
代码:-
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max = 0, count = 0, num;
System.out.println("Enter numbers:-");
while ((num = sc.nextInt()) != 0) {
if (num > max) {
max = num;
count = 1;
} else if (num == max) {
count++;
}
}
System.out.println("nCount of maximum number = "+count);
}
}
你不需要使用ArrayList或Array。一直输入数字,直到你得到0。
你可以用一个循环来实现。这样做的传统简洁模式涉及到这样一个事实,即赋值解析为所赋的值。因此,您的循环可以使用(x = input.nextInt()) != 0
来终止(处理异常和非整数输入,留给读者作为练习)。记住在之后显示max和count循环并在找到新的最大值时将计数重置为1
。此外,我将默认最大值为Integer.MIN_VALUE
(而不是1
)。这使得代码看起来像
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a Integer:");
int count = 0, max = Integer.MIN_VALUE, userInput;
while ((userInput = input.nextInt()) != 0) {
if (userInput > max) {
max = userInput;
count = 1;
} else if (userInput == max) {
count++;
}
}
System.out.println("The max number is " + max);
System.out.println("The count is " + count);
}