gpt4 book ai didi

java - 在Java中,如何检查下一个输入是否是整数,同时检查它是否是>和<?

转载 作者:行者123 更新时间:2023-12-01 18:46:19 24 4
gpt4 key购买 nike

我有两件事需要帮助。循环问题 1)我必须在循环之外初始化此变量,如果用户输入字符串,这会使循环失败。有办法解决这个问题吗?基本上,如果我将 N 设置为任何值,那么 do-while 循环就会在退出

后立即读取它
import java.util.Scanner;

/**
* Calculates sum between given number
*/

public class PrintSum {

public static void main(String[] args) {

int N = 0;
String word;

boolean okay;
Scanner scan = new Scanner(System.in);
System.out.print("Please enter a number from 1-100: ");
do {
if (scan.hasNextInt()) {
N = scan.nextInt();
} else {
okay = false;
word = scan.next();
System.err.print(word + " is an invalid input. Try again. ");
}
if (N > 100 || N < 1) {
okay = false;
System.err.print("Invalid Input. Try again. ");
} else {
okay = true;
}
} while (!okay);
loop(N, 0);
}

public static void loop(int P, int total) {
while (P >= 1) {
total = total + P;
P--;
}

System.out.println(total);

}
}

如果没有,那么问题就变成了,我该如何解决这个问题?我觉得我需要能够说

if (scan.hasNextInt() || ??? > 100 || ??? < 1) {
okay = false;
word = scan.next();
System.err.print(word + " is an invalid input. Try again. ");
} else {
okay = true;
}

我要在 ??? 中放入什么?使这项工作有效?我想我只是不知道足够的语法。

谢谢!

最佳答案

为什么不试试这个呢?

do {
if (scan.hasNextInt()) {
N = scan.nextInt();
} else {
okay = false;
word = scan.next();
System.err.print(word + " is an invalid input. Try again. ");
continue;
}
if (N > 100 || N < 1) {
okay = false;
System.err.print("Invalid Input. Try again. ");
continue;
} else {
okay = true;
}
} while (!okay);

break 用于在用户输入无效字符(else子句的条件)时立即结束循环,因此循环不会失败。
查看您编辑的问题,如果您可能希望允许用户在输入无效值后输入另一个值,那么您正在寻找继续
根据需要使用 breakcontinueMore休息并继续。您的第二种方法可以解决如下:

if (scan.hasNextInt()){
N = scan.nextInt();
if (N > 100 || N < 1) {
System.err.print("Invalid input. Try again. ");
}
//perform some operation with the input
}
else{
System.err.print("Invalid Input. Try again. ");
}

关于java - 在Java中,如何检查下一个输入是否是整数,同时检查它是否是>和<?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59834716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com