簡體   English   中英

“如何在 switch 語句后請求 if-else 輸入?”

[英]"How can I request an if-else input after a switch statement?"

在 switch 語句之后,我想請求一個“Y”或“N”語句並打印出相應響應的語句。 如何聲明輸入字符,然后為該值提供掃描儀輸入?

我試過將輸入用作字符和整數。 我也嘗試過使用布爾方法。

import java.util.*;
public class Dowhile {


  public static void main(String[] args) { 
    Scanner in = new Scanner(System.in);
    int x;
    System.out.println("0,1,-1: ");
    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;
    }   

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



  }}

我希望輸出是相應輸入的 println 響應。

我會嘗試這樣的事情:

    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()的第一次調用仍然會失敗。

在 switch 語句之后,我想請求一個“Y”或“N”語句並打印出相應響應的語句。 如何聲明輸入字符,然后為該值提供掃描儀輸入?

我嘗試使用輸入作為字符和 integer。 我也嘗試過使用 boolean 方法。

import java.util.*;
public class Dowhile {


  public static void main(String[] args) { 
    Scanner in = new Scanner(System.in);
    int x;
    System.out.println("0,1,-1: ");
    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;
    }   

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



  }}

我希望 output 是相應輸入的 println 響應。

假設您不需要擴展您的程序來執行除打印到控制台之外的任何操作,以下是我將采用的方法:

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語句的情況下打印到控制台。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM