“如何在switch语句后请求if-else输入?”

时间:2019-10-14 19:41:58

标签: java loops if-statement switch-statement

在switch语句之后,我想请求'Y'或'N'语句并为相应的响应打印出一条语句。如何声明输入字符,然后提供该值的扫描器输入?

我尝试使用输入作为char和一个整数。我也尝试过使用boolean方法。

<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>
<script>const {map, reduce, toPairs, range, length, values, pipe, prop, uniq, concat, chain, keys, assocPath, indexOf} = R </script>

我希望输出是相应输入的println响应。

3 个答案:

答案 0 :(得分:2)

我会尝试这样的事情:

    System.out.println("Enter 'Y' or 'N'");
    char input = in.next("Y|N").charAt(0);
    if('Y' == input)
      System.out.println("OK");
    else
      System.out.println("wow");

in.next("Y|N")部分请求'Y'或'N'(字符串"Y|N"被解释为正则表达式),并以字符串形式返回结果。 charAt(0)函数返回此字符串的第一个(也是唯一的)字符。

请注意,如果您未输入“ Y”或“ N”,则此方法将引发异常。

如果要避免出现异常,可以使用以下代码段:

    System.out.println("Enter 'Y' or 'N'");
    char input = in.next(".").charAt(0);
    if('Y' == input)
      System.out.println("OK");
    else if ('N' == input)
      System.out.println("wow");
    else
      System.out.println("You haven't entered a valid character");

但是要小心,因为如果有人输入非整数的内容,那么您对in.nextInt()的第一次调用仍然会失败。

答案 1 :(得分:0)

您可以执行以下操作:

import java.util.Scanner;

public class DoWhile {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("0,1,-1: ");
        int x = in.nextInt();

        switch (x) {
        case 1:
            System.out.println("Positive");
            break;
        case -1:
            System.out.println("Negative");
            break;
        case 0:
            System.out.println("Zero");
            break;
        default:
            System.out.println("You're a bad person!");
            break;
        }
        System.out.print("Enter 'Y' or 'N': ");
        String input = in.next();
        if (input.equalsIgnoreCase("Y"))
            System.out.println("OK");
        else if (input.equalsIgnoreCase("N"))
            System.out.println("Wow");
        else
            System.out.println("Incorrect input");
    }
}

答案 2 :(得分:0)

假设您无需扩展程序即可执行除打印到控制台外的任何操作,以下是我要采用的方法:

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in);

    System.out.println("0,1,-1: ");
    int x = in.nextInt();
    System.out.println(
            x == 1 ? "Positive" :
            x == -1 ? "Negative" :
            x == 0 ? "Zero" :
            "You're a bad person!"
    );

    System.out.println("Enter 'Y' or 'N'");
    System.out.println(in.next().equalsIgnoreCase("Y") ? "OK" : "wow");
    in.close();
}

三元运算符用于检查条件并在没有switchif语句的情况下打印到控制台。