在 Java 中提示用户是或否输入

use*_*401 1 java variables loops

如何提示用户循环代码是循环否退出和错误输入打印错误输入并返回语句即。“要不要输入另一个名字:”

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;
        }
    }
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*rno 5

  1. 如果您不使用 Java 7,则不能使用开关字符串
  2. 更改while (true)while (yn)所以当他输入“否”时它会停止,并更改boolean yn;boolean yn = true; 并更改案例内的规则。

    case "yes":
         yn = false;
         break;
    case "no": 
         yn = true;
         break;
    
    Run Code Online (Sandbox Code Playgroud)

    yn = true;如果"yes";

    yn = false;如果"no";

    您可以更改 while 内的条件,如果是,则使用while (!yn)但更直观yn truefalse如果不。

  3. return default;没有多大意义,如果你想让用户在错误的情况下重复......你应该做一个新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;
    }
}
Run Code Online (Sandbox Code Playgroud)

是的,它会重复decision代码,但它是如何创建的,我认为这是唯一的方法。