2017-01-20 15 views
-2

javaでは、3つのcase文を使用する必要があります。ユーザーの入力を要求し、0以下の数字を入力すると何かを指示します。彼らが10以上を入力した場合、それは他のことを言います。 1から9の間に入ると、何かを言い、入力したものまで1より大きいすべての数字に単語を追加します。これまでのところ、if文を使用してほとんどのことを行う方法を理解しましたが、 "switch"を使用して行う必要があります。また、文章の終わりに余分な単語を追加することは実際にはありません。1-9の間であれば、正しい方向に私を向けることができれば涼しいでしょう。ここで"if"文を "switch"にする

は、これまでの私のコードの一部です:

public static void main(String[] args) { 

String Str = "Add more to number"; 
String Str2 = "Too much number"; 
String Str3 = "Just right"; 
int num1 = 0; 
Scanner scanIn = new Scanner(System.in); 

System.out.println("How much number"); 
num1 = scanIn.nextInt(); 

if (num1 <= 0) System.out.println(Str); 
else if (num1 > 10) System.out.println(Str2); 
else if (num1 < 10 || num1 > 1) System.out.println(Str3); 
+6

'switch'はこの問題に自然に適合しません。それは厳密な平等の比較に関するものです。 – zerkms

+0

スイッチケースブロックのロジック(つまり、どのように動作するか)を理解していますか?そうであれば、どの実装を試してみましたか?予想通りに動作しなかった場合は、デバッガでコードをステップ実行して、期待される結果が実際に実行されているものとどこを逸脱しているかを確認しましたか? – scottb

+0

compareToを悪用してswitch文を作ることができるかもしれませんが、なぜですか? –

答えて

1

あなたはif文使用して正しいです。誰もが大文字/小文字を明記しているように、これには自然に適合しません。また、数字の推測ゲームを行っているように見えるので、ユーザーが正しく推測して特定の数字を推測するまで繰り返し入力を求めたいと思うでしょう。私の例では、私の数字を推測するのに7を使用します。

public static void main(String[] args) { 
    String Str = "Add more to number"; 
    String Str2 = "Too much number"; 
    String Str3 = "Just right"; 
    int num1 = 0; 
    int numToGuess = 7; //you can change this to whatever you want 
    Scanner scanIn = new Scanner(System.in); 

    //we want to ask for a number until it is the same as our numToGuess 
    do { 
     System.out.println("How much number"); 
     num1 = scanIn.nextInt(); 
     //if the number entered is less let them know 
     if(num1 < numToGuess) 
     { 
      System.out.println(Str); 
     } 
     else if(num1 > numToGuess) 
     { 
      System.out.println(Str2); 
     } 
    } while (num1 != numToGuess); 
    //we will continue to ask until our num1 is equal to numToGuess 

    //since we got out we guessed correctly 
    System.out.println(Str3); 

}//main method 
関連する問題