2016-11-25 6 views
-3

私のプログラムはあなたが入力した数字を単語で書くようにします。例えば。 52 = 52。 私はここで間違っていますか? それは言葉を受け入れることを望んでいませんが、文字列に変数を変更することはできません。Javaのswitch文に問題がある

import javax.swing.*; 

public class Switch 
{ 

public static void main (String [] args) 
{ 

int number = Integer.parseInt (JOptionPane.showInputDialog("Type in a number between 0 - 100 :")); 

int num1 = 0; 
int num2 = 0; 

    switch(num1) 
     { 
     case 1 : num1 = "One" ;break; 
     case 2 : num1 = "Two";break; 
     case 3 : num1 = "Three";break; 
     case 4 : num1 = "Four";break; 
     case 5 : num1 = "Five";break; 
     case 6 : num1 = "Six";break; 
     case 7 : num1 = "Seven";break; 
     case 8 : num1 = "Eight";break; 
     case 9 : num1 = "Nine";break; 
      default: System.out.println("Incorrect input"); 
         break; 
     } 

     switch(num2) 
     { 
     case 1 : num2 = "Teen";break; 
     case 2 : num2 = "Twenty";break; 
     case 3 : num2 = "Thirty";break; 
     case 4 : num2 = "Fourty";break; 
     case 5 : num2 = "Fifty";break; 
     case 6 : num2 = "Sixty";break; 
     case 7 : num2 = "Seventy";break; 
     case 8 : num2 = "Eighty";break; 
     case 9 : num2 = "Ninety";break; 
      default: System.out.println("Incorrect input"); 
         break; 
     } 

     System.out.println(num1 + num2); 

} 

} 
+2

'int num1 = 0;'と 'num1 =" One "'、ここでは互換性のない型を使用しています。 –

答えて

0

変数num1とnum2は整数であり、それらに文字列値を割り当てています。それは動作しません。 したがって、文字列の値を格納する別の文字列変数を持つことができます。

しかし何よりも、数字を単語に変換するロジックは間違っています。デバッグして修正してください。

0

あなたのスイッチの前にint num1 = 0; int num2 = 0;を割り当てた場合、それは書き込みと同じことだ:

switch(0) {} 

は正しくnum1num2を初期化するようにしてください。

また、@Matt Clarkが追加したように、文字列をint変数に配置しようとします。

0

スイッチはnum1とnum2に適用されていますが、スイッチは常に0で、入力には適用されません。また、int型に文字列値を代入しています。

あなたが望むものを達成するためにスイッチを使いたい場合は、文字列[インデックス]を使用して入力文字列を数字に分割する必要がありますが、これは非常に良い方法ではありません。

0

switch文のint変数にStringを代入することはできません。 まず、num1とnum2のデータ型をStringに変更します。

String num1; 
String num2; 

はその後case文には、それはあなたが整数として入力を服用している場合は、ケース内の文字列

int number = Integer.parseInt (JOptionPane.showInputDialog("Type in a number between 0 - 100 :")); 

String num=Integer.toString(number); 
char[] sNums = num.toCharArray(); 

String num2 =String.valueOf(sNums[0]) ; 
String num1 = String.valueOf(sNums[1]); 

の配列に整数を変換しない場合1

  case "1" : num1 = "One" ;break; 
     case "2" : num1 = "Two";break; 
     case "3" : num1 = "Three";break; 
     case "4" : num1 = "Four";break; 
     case "5" : num1 = "Five";break; 
     case "6" : num1 = "Six";break; 
     case "7" : num1 = "Seven";break; 
     case "8" : num1 = "Eight";break; 
     case "9" : num1 = "Nine";break; 

"1" ケースなければなりませんユーザーが1桁の数字を入力すると、ロジックは次のようになります。

int number = Integer.parseInt(JOptionPane 
       .showInputDialog("Type in a number between 0 - 100 :")); 

     String num = Integer.toString(number); 
     char[] sNums = num.toCharArray(); 

     String num2 = String.valueOf(sNums[0]); 
     String num1 = ""; 
     if (sNums.length > 1) { 
      num1 = String.valueOf(sNums[1]); 
     } else { 
      num1 = num2; 
      num2 = ""; 
     } 
関連する問題