java - 如何在不使用零的情况下终止用户输入?
问题描述
基本上我正在尝试创建一个返回数组的方法,以便以后可以使用此列表,唯一的问题是我找不到除使用 0 之外的终止用户输入的方法。我试图接受用户使用字符串输入,然后将其解析为 int,但仅在使用非数字字符时才会导致错误。
public static double[] input()
{
double[] arr = new double[100];
//int count = 1;
for(int i = 0; i < arr.length; i++)
{
System.out.print("Insert a number or Zero to stop: ");
double input = scan.nextDouble();
arr[i] = input;
if(input == 0)
{
break;
}
count++;
}
return arr;
}
解决方案
我认为,for(int i = 0; i < arr.length; i++)
您可以简单地询问用户他/她希望输入多少位数,然后将该值传递给 for 循环以执行 lie ,而不是条件for(int i = 0; i < length; i++)
,其中 length 是用户所需的数组大小。
如果您不想询问用户,请执行此操作,将数字作为单个字符而不是字符串接受,然后在将其解析为 int 之前检查输入的字符是否为转义序列(\n 或 \r)arr[index]='\n' or'\r'
,然后您可以终止输入过程。
注意:此过程仅适用于整数输入,如果用户输入一个它接受的字符,只需确保输入的字符是一个数字。
我建议你把 print 语句放在 for 循环之外,因为只要 for 循环运行,它就会重复,一次又一次地显示这些指令是不好的。
推荐阅读
- javascript - Selenium IDE - 在页面转发期间选择OkOnNextConfirmation 的时间
- r - 将某些图与子图组合后隐藏 y 轴标签文本
- r - 在 Shiny App 上出现编码错误的 URL 查询
- java - 使用 facebook4 插件在 android 上使用 phonegap 在 Facebook 登录时应用程序崩溃
- c# - c# Xamarin Android 从 AlertDialog 返回响应 bool
- c# - substring 被 substringof 改变了?
- java - 如何在java中打开受密码保护的docx文件?
- css - Opencart/Bootstrap 大小调整
- php - 如何经常用php接收和发布数据
- ios - Swift 4.2 无法将类型“(UIImagePickerController.InfoKey).Type”的值转换为预期的参数类型“UIImagePickerController.InfoKey”