![](/img/trans.png)
[英]How to ask the user to input whether they want to continue or not in the last part of a program?
[英]Java ask user if they want to continue a program
您好,我很好奇是否有任何其他方法可以缩短此代码,但在“输入 1 继续”中满足输入时它会循环程序所以程序会运行得更快
System.out.print("Enter first number: ");
fnum = sc.nextInt();
System.out.print("Enter second number: ");
snum = sc.nextInt();
if (fnum <= snum) {
while (fnum <= snum) {
System.out.println(fnum);
fnum++;
}
} else {
while (fnum >= snum) {
System.out.println(fnum);
fnum--;
}
}
do {
System.out.print("Enter 1 to continute, enter any number to end: ");
enter = sc.nextInt();
if (enter == 1) {
System.out.print("Enter first number: ");
fnum = sc.nextInt();
System.out.print("Enter second number: ");
snum = sc.nextInt();
if (fnum <= snum) {
while (fnum <= snum) {
System.out.println(fnum);
fnum++;
}
} else {
while (fnum >= snum) {
System.out.println(fnum);
fnum--;
}
}
} else {
System.out.println("************************************************");
System.out.println("************************************************");
System.out.println("******************Thank you*********************");
System.out.println("************************************************");
System.out.println("************************************************");
System.exit(0);
}
} while (enter == 1);
} }
int enter=0;
do {
if(enter==0){
System.out.print("Enter first number: ");
int fnum = sc.nextInt();
System.out.print("Enter second number: ");
int snum = sc.nextInt();
if (fnum <= snum) {
while (fnum <= snum) {
System.out.println(fnum);
fnum++;
}
} else {
while (fnum > snum) {
System.out.println(fnum);
fnum--;
}
}
}
System.out.print("Enter 0 to continue, enter any number to end: ");
enter = sc.nextInt();
} while (enter==0);
试试这种方式,你的重复代码可以被删除。
因此,每当您尝试根据用户输入满足的条件运行代码时,请确保始终在 while 循环内终止程序,因为do while
和while
主要用于无限期执行代码的目的。直到满足某个条件。 就您而言,由于您必须至少执行一次代码,因此 do while 是您程序的完美选择
第一步是考虑你想重复什么。 无论用户想要做什么,您都希望至少执行一次循环,因此do-while
是完美的。
用户输入前两个值后,您希望提示用户确定他们是否要继续,这构成了退出条件的一部分
Scanner sc = new Scanner(System.in);
String response = "Y";
do {
System.out.print("Enter first number: ");
int fnum = sc.nextInt();
sc.nextLine();
System.out.print("Enter second number: ");
int snum = sc.nextInt();
sc.nextLine();
if (fnum <= snum) {
while (fnum <= snum) {
System.out.println(fnum);
fnum++;
}
} else {
while (fnum >= snum) {
System.out.println(fnum);
fnum--;
}
}
System.out.println("Do you wish to try again [Y/N]?");
response = sc.nextLine();
} while ("Y".equalsIgnoreCase(response));
System.out.println("************************************************");
System.out.println("************************************************");
System.out.println("******************Thank you*********************");
System.out.println("************************************************");
System.out.println("************************************************");
注意:出于教育原因,我使用response
作为退出变量,您可以直接使用sc.nextLine()
因此,基本上,这将继续循环,直到用户在“继续”问题中输入Y
任何内容(您也可以检查N
,但这取决于您)
我只是这样做
do {
// your code
System.out.print("Press [1] to continue: ");
} while (sc.nextInt() == 1);
把你的代码放在里面,如果你用 do while 方法输入 1,它会重复
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.