java - Java 根据这个输入,程序会显示小于 50 的整数个数
问题描述
对于这个任务,我需要编写一个接受用户 30 个整数的 Java 应用程序。输入应在 1-200 范围内。如果用户输入的输入不在此范围内,则需要显示错误消息。基于此输入,程序将显示输入以下类别的整数数量: 小于 50 50-100 之间(包括 50 和 100)
样本输出:输入数字 4:211
输入错误..请仅输入 1 到 200 之间的数字
输入数字 4:20
..
..
输入数字 30: 90
少于 50: 12
50-100之间(包括50和100):8
101-150之间(包括101和150):5
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// Keyboard Initialization
Scanner kbin = new Scanner(System.in);
// a.Declare an array to hold 5 Integer values
int list[] = new int[5];
int i = 0;
System.out.print("\n\tInput numbers from 1 to 200: \n");
while (i < 5) {
// b.Fill the array with intgers from the keyboard(range: 1 to 200).
System.out.print("Enter Integer" + (i + 1) + ":");
int value = kbin.nextInt();
if (value >= 1 && value <= 200) {
list[i] = value;
i++;
} else {
System.out.println("!! Error! Please Enter Value between 1 and 200 !!");
}
}
}
}
解决方案
这是一个使用 Java Streams 的示例。这里我们只是先读取所有值,然后过滤掉每个类别。性能方面,如果您不关心被计算的实际数字,最好只为每个类别使用一个计数器。
public class Test {
public static void main(String[] args) {
int counter = 0;
Scanner scanner = new Scanner(System.in);
List<Integer> values = new ArrayList<>();
while (counter < 5) {
System.out.print("Enter integer (" + (counter + 1) + "): ");
int value = scanner.nextInt();
if (value >= 1 && value <= 200) {
counter++;
values.add(value);
} else {
System.out.println("Please enter a value between 1 and 200");
}
}
System.out.println("Between 1-50 : " + values.stream().filter(val -> val < 50).count());
System.out.println("Between 50-100 : " + values.stream().filter(val -> val >= 50 && val <= 100).count());
System.out.println("Between 101-150: " + values.stream().filter(val -> val > 100 && val <= 150).count());
System.out.println("Between 151-200: " + values.stream().filter(val -> val > 150 && val <= 200).count());
}
输出示例:
Enter integer (1): 5
Enter integer (2): 55
Enter integer (3): 125
Enter integer (4): 175
Enter integer (5): -2
Please enter a value between 1 and 200
Enter integer (5): 201
Please enter a value between 1 and 200
Enter integer (5): 199
Between 1-50 : 1
Between 50-100 : 1
Between 101-150: 1
Between 151-200: 2
推荐阅读
- html - 如何解决多级列表的css增量
- latex - 使用 rmarkdown/bookdown 时是否可以控制表格中的字体大小?
- java - 通过 Java 进行 WebDAV 身份验证
- c# - 外部登录不起作用身份服务器4 asp.net核心
- python - Pandas,如果在接下来的 12 个月内满足某个条件,如何检查数据框中的每个日期
- reactjs - 如何切换以显示和隐藏 Reactjs 中的元素?
- jquery - Django中的喜欢按钮
- python - 是否有 python 函数来查找浮点数是否属于特定范围?
- django - 我该如何解决这个错误“类型对象'用户'没有属性'对象'”
- python - 正则表达式 - 计算一个单词在文本中出现的次数