java - 有人可以解释一下这段代码吗?关于用户输入、扫描仪等
问题描述
有人可以向我解释这段代码是如何工作的吗?
它允许用户输入直到 的数字1000
,然后将原始输入的数字(偶数和奇数)打印在一个单独的数组中。但我只是不明白存在的部分gem++
以及gem1++
何时输出偶数和奇数而不是偶数和奇数的数量。
在放了这个之后
double even[] = new double[gem];
double odd[] = new double [gem1];
为什么需要一次又一次地gem=0
重复gem1=0
?如果我问了太多问题,我很抱歉,我很困惑,我上周刚学了java。
public class wutt {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Enter no. of elements you want in array : ");
int n = s.nextInt();
if (1 <= n && n <= 1000) {
double a[] = new double[n];
int gem = 0, gem1 = 0;
System.out.println("Enter all the elements : ");
for (int i = 0; i < n; i++) {
a[i] = s.nextInt();
if (a[i] % 2 == 0)
gem++;
else
gem1++;
}
double even[] = new double[gem];
double odd[] = new double[gem1];
gem = 0;
gem1 = 0;
for (int i = 0; i < a.length; i++) {
if (a[i] % 2 == 0) {
even[gem] = a[i];
gem++;
} else {
odd[gem1] = a[i];
gem1++;
}
}
System.out.println("Original: " + Arrays.toString(a));
System.out.println("Odd: " + Arrays.toString(odd));
System.out.println("Even: " + Arrays.toString(even));
} else
System.out.print("Invalid input");
}
}
解决方案
如果您希望程序在用户输入大于 1000 或小于 0 的数字后停止,您需要break
在条件中添加语句if
。
if (size < 0 || size > 1000) {
System.out.println("Size must be between 0 and 1000");
break;
}
推荐阅读
- php - php array_intersect 和 array_intersect_assoc 函数用于关联数组显示错误
- linux - 防止变量覆盖到 submakefile
- django - Django Rest Framework 以一对多关系获取其他相关字段
- windows - Windows防火墙意外重置连接
- asp.net - 如何向指向一个端点的 Swashbuckle 文档路径添加多个操作?
- c# - NuGet 引用存储在哪里?
- matlab - 计数和分配给变量的提示
- ruby-on-rails - RSpec:ActionController::UrlGenerationError:用于自定义 url
- html - AngularJS select not showing selected value
- javascript - 在材质 ui 中使用 setState 设置当前日期