Java 我怎样才能使我的程序在运行一次之后仍然运行
我写了一个干扰用户的程序。然而,它只工作一次。我希望我的程序一直运行,直到用户写入“q”或“q”。到目前为止,我写了以下内容:Java 我怎样才能使我的程序在运行一次之后仍然运行,java,Java,我写了一个干扰用户的程序。然而,它只工作一次。我希望我的程序一直运行,直到用户写入“q”或“q”。到目前为止,我写了以下内容: import java.util.Scanner; public class isbn { public static boolean validISBN(String isbnNumber) { isbnNumber = isbnNumber.replace("-", "").trim(); if (isbnNumber.len
import java.util.Scanner;
public class isbn {
public static boolean validISBN(String isbnNumber) {
isbnNumber = isbnNumber.replace("-", "").trim();
if (isbnNumber.length() == 10 && isbnNumber.matches("[0-9]+")) {
int sum = 0;
for(int i = 10; i > 0; i--) {
if (isbnNumber.charAt(9) == 'X' && i == 1) {
sum += i * 10;
} else {
sum += i * Character.getNumericValue(isbnNumber.charAt(10 - i));
}
}
if (sum % 11 == 0) {
System.out.println("Valid");
} else {
System.out.println("Invalid");
}
}
return false;
}
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Input ISBN Number: ");
String isbnNumber = keyboard.next();
validISBN(isbnNumber);
}
}
添加一个循环,检查用户是否输入“q”或“q”
添加一个循环,检查用户是否输入“q”或“q”
您可以使用无限循环,每次检查输入。如果输入为q或q,则断开循环
String input = null;
while(true) {
input = keyboard.next();
if("q".equalsIgnoreCase(input)) break;
validISBN(isbnNumber);
}
您可以使用无限循环,每次检查输入。如果输入为q或q,则断开循环
String input = null;
while(true) {
input = keyboard.next();
if("q".equalsIgnoreCase(input)) break;
validISBN(isbnNumber);
}
和其他人一样,答案说您需要使用一个等待用户输入的循环。您可以通过使用方法来实现这一点,并在
while
循环中对其求值
以下是来自Javadoc的一个片段:
如果此扫描仪的输入中有另一个令牌,则返回true。此方法在等待输入扫描时可能会阻塞。扫描仪不会超过任何输入
以下是实际执行情况:
import java.util.Scanner;
公共班机{
公共静态最终扫描仪阅读器=新扫描仪(System.in);
公共静态布尔validISBN(字符串isbnNumber){
isbnNumber=isbnNumber.replace(“-”,“”)。trim();
if(isbnNumber.length()==10&&isbnNumber.matches(“[0-9]+”))
{
整数和=0;
对于(int i=10;i>0;i--){
如果(isbnNumber.charAt(9)='X'&&i==1){
总和+=i*10;
}否则{
sum+=i*Character.getNumericValue(isbnNumber.charAt(10-i));
}
}
返回和%11==0;
}
返回false;
}
公共静态字符串getISBN(){
System.out.println(“输入ISBN编号:”);
while(READER.hasNext())
{
字符串输入=READER.next();
if(输入.相等信号情况(“q”)){
System.out.println(“退出应用程序…”);
系统出口(0);
}
else if(有效输入)){
System.out.println(“您的ISBN已被接受”);
返回输入;
}
否则{
System.out.println(“无效的ISBN编号,请重试:”);
}
}
抛出新的IllegalStateException(“用户输入流中不再有托克斯”);
}
公共静态void main(字符串[]args){
字符串isbn=getISBN();
}
}与其他答案一样,您需要使用一个等待用户输入的循环。您可以通过使用方法来实现这一点,并在
while
循环中对其求值
以下是来自Javadoc的一个片段:
如果此扫描仪的输入中有另一个令牌,则返回true。此方法在等待输入扫描时可能会阻塞。扫描仪不会超过任何输入
以下是实际执行情况:
import java.util.Scanner;
公共班机{
公共静态最终扫描仪阅读器=新扫描仪(System.in);
公共静态布尔validISBN(字符串isbnNumber){
isbnNumber=isbnNumber.replace(“-”,“”)。trim();
if(isbnNumber.length()==10&&isbnNumber.matches(“[0-9]+”))
{
整数和=0;
对于(int i=10;i>0;i--){
如果(isbnNumber.charAt(9)='X'&&i==1){
总和+=i*10;
}否则{
sum+=i*Character.getNumericValue(isbnNumber.charAt(10-i));
}
}
返回和%11==0;
}
返回false;
}
公共静态字符串getISBN(){
System.out.println(“输入ISBN编号:”);
while(READER.hasNext())
{
字符串输入=READER.next();
if(输入.相等信号情况(“q”)){
System.out.println(“退出应用程序…”);
系统出口(0);
}
else if(有效输入)){
System.out.println(“您的ISBN已被接受”);
返回输入;
}
否则{
System.out.println(“无效的ISBN编号,请重试:”);
}
}
抛出新的IllegalStateException(“用户输入流中不再有托克斯”);
}
公共静态void main(字符串[]args){
字符串isbn=getISBN();
}
}你需要一个循环。你需要一个循环。