在Java中提示用户输入是或否
如何提示用户循环代码“是”循环“否”退出并输入错误打印错误输入并返回语句ie。是否要输入其他名称:在Java中提示用户输入是或否,java,variables,loops,Java,Variables,Loops,如何提示用户循环代码“是”循环“否”退出并输入错误打印错误输入并返回语句ie。是否要输入其他名称: import java.util.Scanner; public class loop { public static void main(String[] args){ Scanner kbd = new Scanner (System.in); String decision; boolean yn; while(true){ System.
import java.util.Scanner;
public class loop {
public static void main(String[] args){
Scanner kbd = new Scanner (System.in);
String decision;
boolean yn;
while(true){
System.out.println("please enter your name");
String name = kbd.nextLine();
System.out.println("you entered the name" + name );
System.out.println("enter another name : yes or no");
decision = kbd.nextLine();
switch(decision){
case "yes":
yn = false;
break;
case "no":
yn = true;
break;
default :
System.out.println("please enter again ");
return default;
}
}
}
}
是的,但你想要的是“whileyn”,而不是“whiletrue”,这会永远持续下去。break仅与switch语句断开
好的,试试这个:
import java.util.Scanner;
public static void main(String args[]){
Scanner s = new Scanner(System.in);
boolean checking = true, valid = true;
String[] names = new String[50];
int i = 0;
while(checking){
System.out.println("Enter name...");
me = s.nextLine();
System.out.println("You entered " + me + ".");
while(valid){
System.out.println("Enter another? y/n");
you = s.nextLine();
if(you.equals("n")){
valid = false;
checking = false;
}else if you.equals("y")){
names[i] = you;
i++;
valid = false;
}else{
System.out.println("Sorry, try again (y/n)...");
}
}
}
}
是的,但你想要的是“whileyn”,而不是“whiletrue”,这会永远持续下去。break仅与switch语句断开
好的,试试这个:
import java.util.Scanner;
public static void main(String args[]){
Scanner s = new Scanner(System.in);
boolean checking = true, valid = true;
String[] names = new String[50];
int i = 0;
while(checking){
System.out.println("Enter name...");
me = s.nextLine();
System.out.println("You entered " + me + ".");
while(valid){
System.out.println("Enter another? y/n");
you = s.nextLine();
if(you.equals("n")){
valid = false;
checking = false;
}else if you.equals("y")){
names[i] = you;
i++;
valid = false;
}else{
System.out.println("Sorry, try again (y/n)...");
}
}
}
}
如果不使用Java7,就不能使用开关字符串
用while yn更改while true,这样当他键入no时,它将停止,并更改布尔yn;布尔值yn=true;
也要改变箱子里的规则
case "yes":
yn = false;
break;
case "no":
yn = true;
break;
yn=真;若有,
yn=假;若否,
你可以用while在while内改变条件!yn,但如果是,则更直观地让yn为真;如果否,则为false
返回默认值;如果你想让用户在出错的情况下重复,那就没什么意义了。。你应该做一个新的while true来重复,直到他写一个正确的为止。我会写另一个方法
这就是你能做到的
Scanner kbd = new Scanner (System.in);
String decision;
boolean yn = true;
while(yn)
{
System.out.println("please enter your name");
String name = kbd.nextLine();
System.out.println("you entered the name" + name );
System.out.println("enter another name : yes or no");
decision = kbd.nextLine();
switch(decision)
{
case "yes":
yn = true;
break;
case "no":
yn = false;
break;
default:
System.out.println("please enter again ");
boolean repeat = true;
while (repeat)
{
System.out.println("enter another name : yes or no");
decision = kbd.nextLine();
switch (decision)
{
case "yes":
yn = true;
repeat = false;
break;
case "no":
yn = repeat = false;
break;
default:
repeat = true;
}
}
break;
}
}
是的,它会重复决策代码,但它是如何创建的,我认为这是唯一的方法
boolean input = true;
while(input){
//ask for name
//print message saying you entered xyz
//ask if user wants to enter other name
//if user enters no
//set input = false;
//else continue
}
如果不使用Java7,就不能使用开关字符串
用while yn更改while true,这样当他键入no时,它将停止,并更改布尔yn;布尔值yn=true;
也要改变箱子里的规则
case "yes":
yn = false;
break;
case "no":
yn = true;
break;
yn=真;若有,
yn=假;若否,
你可以用while在while内改变条件!yn,但如果是,则更直观地让yn为真;如果否,则为false
返回默认值;如果你想让用户在出错的情况下重复,那就没什么意义了。。你应该做一个新的while true来重复,直到他写一个正确的为止。我会写另一个方法
这就是你能做到的
Scanner kbd = new Scanner (System.in);
String decision;
boolean yn = true;
while(yn)
{
System.out.println("please enter your name");
String name = kbd.nextLine();
System.out.println("you entered the name" + name );
System.out.println("enter another name : yes or no");
decision = kbd.nextLine();
switch(decision)
{
case "yes":
yn = true;
break;
case "no":
yn = false;
break;
default:
System.out.println("please enter again ");
boolean repeat = true;
while (repeat)
{
System.out.println("enter another name : yes or no");
decision = kbd.nextLine();
switch (decision)
{
case "yes":
yn = true;
repeat = false;
break;
case "no":
yn = repeat = false;
break;
default:
repeat = true;
}
}
break;
}
}
是的,它会重复决策代码,但它是如何创建的,我认为这是唯一的方法
boolean input = true;
while(input){
//ask for name
//print message saying you entered xyz
//ask if user wants to enter other name
//if user enters no
//set input = false;
//else continue
}
试着这样做
试着这样做,而不是打破和whiletrue,你需要说while!当用户输入yes时,您将yn设置为false。而不是break and whiletrue,您需要说while!当用户输入yes时,您将yn设置为false。我刚刚创建了一个小类YesNoCommandPrompt,它可以:
private String prompt;
private Supplier<T> yesAction;
private Supplier<T> noAction;
public YesNoCommandPrompt(String prompt, Supplier<T> yesAction, Supplier<T> noAction) {
this.prompt = prompt;
this.yesAction = yesAction;
this.noAction = noAction;
}
// example usage
public static void main(String[] args) {
YesNoCommandPrompt<String> prompt = new YesNoCommandPrompt<>(
"Choose",
() -> {return "yes";},
() -> {return "no";});
System.out.println(prompt.run());
}
public T run() {
final String yesOption = "y";
final String noOption = "n";
try (Scanner scanner = new Scanner(System.in)) {
while (true) {
System.out.print(prompt + " [" + yesOption + "/" + noOption + "]: ");
String option = scanner.next();
if (yesOption.equalsIgnoreCase(option)){
return yesAction.get();
}
else if (noOption.equalsIgnoreCase(option)){
return noAction.get();
}
}
}
}
我刚刚创建了一个小类YesNoCommandPrompt,它可以:
private String prompt;
private Supplier<T> yesAction;
private Supplier<T> noAction;
public YesNoCommandPrompt(String prompt, Supplier<T> yesAction, Supplier<T> noAction) {
this.prompt = prompt;
this.yesAction = yesAction;
this.noAction = noAction;
}
// example usage
public static void main(String[] args) {
YesNoCommandPrompt<String> prompt = new YesNoCommandPrompt<>(
"Choose",
() -> {return "yes";},
() -> {return "no";});
System.out.println(prompt.run());
}
public T run() {
final String yesOption = "y";
final String noOption = "n";
try (Scanner scanner = new Scanner(System.in)) {
while (true) {
System.out.print(prompt + " [" + yesOption + "/" + noOption + "]: ");
String option = scanner.next();
if (yesOption.equalsIgnoreCase(option)){
return yesAction.get();
}
else if (noOption.equalsIgnoreCase(option)){
return noAction.get();
}
}
}
}
你所说的循环代码是什么意思?如果用户输入是,则循环开始时的代码是什么意思?如果用户输入是,则循环开始时的代码是什么意思?如果用户输入是,则循环开始时的代码我只需要循环最后一个决策语句,例如如果用户输入是是,则循环语句如果用户输入否,则退出语句如果输入错误,则循环重新输入是或否我只需要循环最后一个决策语句,例如如果用户输入是是是,则循环语句如果用户输入否,则退出语句如果输入错误,则循环重新输入是或否您当前使用的是“返回默认值;”但我想你只是想循环,所以“中断;”你能不能帮我编码一下,因为默认情况下使用break会让我回到输入nameOops代码的开头,这会导致你再次输入名称。你只想让他们重新输入“是”或“否”。是的,这就是我想说的,如果输入错误,返回到最后一个语句是的,可能最好有两个嵌套的while循环:一个用于名称/多个名称,第二个用于检查用户输入是或否。当用户输入是或否时,退出第二个,退出外部第一个,当用户输入no.时,您当前使用的是“返回默认值;”但我想你只是想循环,所以“中断;”你能不能帮我编码一下,因为默认情况下使用break会让我回到输入nameOops代码的开头,这会导致你再次输入名称。你只想让他们重新输入“是”或“否”。是的,这就是我想说的,如果输入错误,返回到最后一个语句是的,可能最好有两个嵌套的while循环:一个用于名称/多个名称,第二个用于检查用户输入是或否。当用户输入是或否时,退出第二个,退出外部第一个,当用户输入no.well时,这取决于您想要如何实现它,如果您想要退出错误的用户输入,您可以中断循环,或者您可以要求用户在读取其输入后再次输入。如果输入错误,这取决于您想要如何实现它,如果您想要退出错误的用户输入,您可以中断循环,或者,如果输入错误,您可以要求用户在读取其输入后再次输入