Java 用hasnetint方法从用户获取正整数
我是Java新手,正在开发一个简单的程序,可以从用户那里获取一个正整数。以下是我目前掌握的代码:Java 用hasnetint方法从用户获取正整数,java,Java,我是Java新手,正在开发一个简单的程序,可以从用户那里获取一个正整数。以下是我目前掌握的代码: import java.util.Scanner; public class Binary{ public static void main( String [] args ){ Scanner console = new Scanner(System.in); int number = getInt(console, "Enter a positive integer");
import java.util.Scanner;
public class Binary{
public static void main( String [] args ){
Scanner console = new Scanner(System.in);
int number = getInt(console, "Enter a positive integer");
System.out.println(number);
}
public static int getInt(Scanner console, String prompt){
System.out.println(prompt);
while(!console.hasNextInt() || console.nextInt() < 0){
console.next();
System.out.println("Not an integer; try again");
System.out.println(prompt);
}
return console.nextInt();
}
}
import java.util.Scanner;
公共类二进制文件{
公共静态void main(字符串[]args){
扫描仪控制台=新扫描仪(System.in);
int number=getInt(控制台,“输入正整数”);
系统输出打印项次(编号);
}
公共静态int getInt(扫描仪控制台、字符串提示){
System.out.println(提示);
而(!console.hasNextInt()| | console.nextInt()<0){
console.next();
System.out.println(“不是整数;请重试”);
System.out.println(提示);
}
返回控制台.nextInt();
}
}
目前,当输入任何整数时,它将生成两个输入字段,我想知道如何重构while循环,使其在提示后只显示一个字段。提前谢谢 while(!console.hasNextInt()| | console.nextInt()<0){
while(!console.hasNextInt() || console.nextInt() < 0){
console.next();
System.out.println("Not an integer; try again");
System.out.println(prompt);
}
console.next();
System.out.println(“不是整数;请重试”);
System.out.println(提示);
}
您将在条件中请求一个新变量
这样构造它:
int input = console.nextInt();
while(!console.hasNextInt() || input < 0){
System.out.println("Not an integer; try again");
System.out.println(prompt);
input = console.nextInt();
}
int input=console.nextInt();
而(!console.hasNextInt()| | input<0){
System.out.println(“不是整数;请重试”);
System.out.println(提示);
input=console.nextInt();
}
或者更合适:
do {
input = console.nextInt();
System.out.println("Not an integer; try again");
System.out.println(prompt);
} while (!console.hasNextInt() || input < 0);
do{
input=console.nextInt();
System.out.println(“不是整数;请重试”);
System.out.println(提示);
}而(!console.hasNextInt()| | input<0);
您的逻辑错误,请尝试
public static int getInt(Scanner console, String prompt){
System.out.println(prompt);
int num;
while(console.hasNextInt()){
num= console.nextInt();
if(num >= 0){// If num is positive than break loop and return num
break;
}
System.out.println("Not an integer; try again");
System.out.println(prompt);
}
return num;
}