java - 没有更多输入时退出循环
问题描述
我正在编写一些非常基本的 Java 代码。这个想法是使用循环将最多 20 个数字写入一个数组。当没有剩余值时,我想退出循环。现在,我的代码将写入数组,但如果不输入非整数值,我无法让它退出循环。我读过其他一些帖子,但他们倾向于使用字符串方法,这会使我的代码有点笨重。我觉得有一个简单的解决方案,但我似乎无法弄清楚......
import java.util.Scanner;
public class getArray{
public static void main (String[] args){
Scanner scnr = new Scanner(System.in);
int[]newArray = new int[20];
int newArraySize = 0;
while (scnr.hasNextInt()){
newArray[newArraySize] = scnr.nextInt();
newArraySize += 1;
continue;
}
for (int i = 0; i < newArraySize; i++){
System.out.println("The " + i + " input is " + newArray[i]);
}
}
}
解决方案
如果我理解正确,那么您是否希望将数字的输入限制为数组的大小?
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int[] newArray = new int[20];
int newArraySize = 0;
while (newArraySize < newArray.length && scnr.hasNextInt()) {
newArray[newArraySize] = scnr.nextInt();
newArraySize++;
}
for (int i = 0; i < newArraySize; i++) {
System.out.println("The " + i + " input is " + newArray[i]);
}
}
推荐阅读
- sql - 过时数据计数
- postgres-9.6 - Postgres 备份恢复问题
- typescript - 实现由类实现的接口时出现令人困惑的错误
- elasticsearch - 全数组的 Elasticsearch 聚合
- hibernate - 为什么在 jboss 7.1.1 社区版的两台服务器中部署时休眠 ID 没有增加
- sql-server - SQL Server - DECLARE SET 的执行时间比在 where 条件下硬编码参数要多
- c# - C# 使用套接字发送文件。我想通过服务器在 2 个客户端之间发送文件
- rust - 如何将没有收益的闭包转换为生成器?
- sql - postgresql - 如何按可能有许多重复值的列分页?
- xml - xsl NativeDicomModel 患者姓名标签维护插入符号 dcm4che