Java 用户输入错误,没有引发异常或使用try{}catch{}
我试图创建一个使用while循环的方法,该循环包含一个前瞻方法来处理错误的用户输入:输入超出1-10范围或输入字符串。我试图在不抛出异常或使用try{}catch{}的情况下实现这一点;如果可能的话。我还没有找到一个帖子不使用这些,到目前为止,我所有的尝试都失败了。一个基本的想法会奏效 如果输入正确,则不会停止Java 用户输入错误,没有引发异常或使用try{}catch{},java,input,user-input,Java,Input,User Input,我试图创建一个使用while循环的方法,该循环包含一个前瞻方法来处理错误的用户输入:输入超出1-10范围或输入字符串。我试图在不抛出异常或使用try{}catch{}的情况下实现这一点;如果可能的话。我还没有找到一个帖子不使用这些,到目前为止,我所有的尝试都失败了。一个基本的想法会奏效 如果输入正确,则不会停止 import java.util.*; public class UserErrors{ public static Scanner console = new Scanner(S
import java.util.*;
public class UserErrors{
public static Scanner console = new Scanner(System.in);
public static void main(String[]args){
String s = "Enter a integer between 1-10: ";
get(s);
}
public static int get(String prompt){
System.out.print(prompt);
while(console.hasNext()){
while(!console.hasNextInt()){
console.next();
System.out.println("Invalid data type");
System.out.print(prompt);
}
if(console.nextInt() > 10 || console.nextInt() <1){
System.out.println("not in range");
System.out.print(prompt);
}
}
return console.nextInt();
}
}
import java.util.*;
公共类用户错误{
公共静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
String s=“输入一个介于1-10之间的整数:”;
取得(s);;
}
公共静态int-get(字符串提示){
系统输出打印(提示);
while(console.hasNext()){
而(!console.hasnetint()){
console.next();
System.out.println(“无效数据类型”);
系统输出打印(提示);
}
if(console.nextInt()>10 | | console.nextInt()1){
b=正确;
}
否则{
System.out.println(“不在范围内”);
系统输出打印(提示);
console.nextInt();
}
}
返回控制台.nextInt();
}
}
我还删除了其他一些失败的尝试。我需要修复什么(基本想法就可以了)?有一个错误:
if(console.nextInt() > 10 || console.nextInt() <1){ ... }
if(console.nextInt()>10 | | console.nextInt()10 | | i出现错误:
if(console.nextInt() > 10 || console.nextInt() <1){ ... }
if(console.nextInt()>10 | | console.nextInt()10 | | i每个nextInt调用都是一个阻塞调用,它等待用户输入。
当您在下面一行中编写代码时:
if(console.nextInt() < 10 && console.nextInt() >1)
然后使用userInput变量进行以下检查:
if(userInput < 10 && userInput >1)
if(userInput<10&&userInput>1)
每个nextInt调用都是阻塞调用,它等待用户输入。
当您在下面一行中编写代码时:
if(console.nextInt() < 10 && console.nextInt() >1)
然后使用userInput变量进行以下检查:
if(userInput < 10 && userInput >1)
if(userInput<10&&userInput>1)
Scanner类的方法nextInt()读取标准出口
import java.util.*;
public class UserErrors{
public static Scanner console = new Scanner(System.in);
public static void main(String[]args){
String s = "Enter a integer between 1-10: ";
get(s);
}
public static int get(String prompt){
boolean b = false;
int number;
while(!b){
System.out.print(prompt);
if(!console.hasNextInt()){
console.next();
System.out.println("Invalid data type");
System.out.print(prompt);
console.nextInt();
}else {
number = console.nextInt();
if(nb<1 || nb>10){
System.out.println("not in range");
}else{
b=true;
}
}
}
return nb;
}
}
import java.util.*;
公共类用户错误{
公共静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
String s=“输入一个介于1-10之间的整数:”;
取得(s);;
}
公共静态int get(字符串提示符){
布尔b=假;
整数;
而(!b){
系统输出打印(提示);
如果(!console.hasNextInt()){
console.next();
System.out.println(“无效数据类型”);
系统输出打印(提示);
console.nextInt();
}否则{
number=console.nextInt();
如果(nb10){
System.out.println(“不在范围内”);
}否则{
b=正确;
}
}
}
返回nb;
}
}
Scanner类的方法nextInt()读取标准出口
import java.util.*;
public class UserErrors{
public static Scanner console = new Scanner(System.in);
public static void main(String[]args){
String s = "Enter a integer between 1-10: ";
get(s);
}
public static int get(String prompt){
boolean b = false;
int number;
while(!b){
System.out.print(prompt);
if(!console.hasNextInt()){
console.next();
System.out.println("Invalid data type");
System.out.print(prompt);
console.nextInt();
}else {
number = console.nextInt();
if(nb<1 || nb>10){
System.out.println("not in range");
}else{
b=true;
}
}
}
return nb;
}
}
import java.util.*;
公共类用户错误{
公共静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
String s=“输入一个介于1-10之间的整数:”;
取得(s);;
}
公共静态int get(字符串提示符){
布尔b=假;
整数;
而(!b){
系统输出打印(提示);
如果(!console.hasNextInt()){
console.next();
System.out.println(“无效数据类型”);
系统输出打印(提示);
console.nextInt();
}否则{
number=console.nextInt();
如果(nb10){
System.out.println(“不在范围内”);
}否则{
b=正确;
}
}
}
返回nb;
}
}
那里没有错误:if(console.nextInt()>10 | | console.nextInt()那里没有错误:if(console.nextInt()>10 | | console.nextInt())