要求用户输入,直到在java中输入-5到5之间的值

  • 本文关键字:之间 java 用户 java
  • 更新时间 :
  • 英文 :


我试图创建一些代码,要求用户输入,直到输入的值在-5和5之间,但我有一些麻烦,目前它第一次输入无效的输入是有效的,但如果输入第二个无效的输入,那么程序接受该值,我当前的代码是:

int choice;
Scanner sc = new Scanner(System.in);
choice = sc.nextInt();
if(choice<=-5 || choice>=5)
{
System.out.println("=================================="+"n"+"INVALID INPUT! PLEASE TRY AGAIN: "+"n"+"==================================");                               
choice = sc.nextInt();
}
else
{
// do stuff
}

首先,您需要从一个像while这样的无限循环开始直到输入-5到5之间的数字,然后执行break

因为你想读取用户的输入所以你需要为while循环指定一个条件像, (input.hasNext ()).

同样,使用读取输入hasNext()返回字符串所以你需要将它改为int withparseInt(n)

import static java.lang.Integer.parseInt;
import java.util.Scanner;
public class Mavenproject1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
String n = input.next();
int number = parseInt(n);
if (number >= -5 && number <= 5) {
System.out.println("=================================="+"n"+"INVALID INPUT! PLEASE TRY AGAIN: "+"n"+"==================================");   
break;
}
//            System.out.println(n);

}
input.close();
}
}

也可以使用hasNextInt(),nextInt ()如果你确定输入总是整数值那么你就不需要解析字符串int:

import java.util.Scanner;
public class Mavenproject1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNextInt()) {
int n = input.nextInt();
if (n >= -5 && n <= 5) {
System.out.println("=================================="+"n"+"INVALID INPUT! PLEASE TRY AGAIN: "+"n"+"==================================");   
break;
}
//            System.out.println(n);

}
input.close();
}
}

你发布的代码没有做某事的概念,直到"某些条件是满足的——你只读取一次输入,然后根据它做出决定。你需要去学习循环来重复。

最新更新