2016-11-25 49 views
-3

我想讓我的程序寫出用字樣輸入的數字。例如。 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類型。

如果你想使用switch實現你想要的,你將需要使用string [index]將輸入字符串分隔成數字,但是這看起來不是一個很好的方法。

0

您不能在switch語句中將String分配給int變量。 因此,首先將num1和num2的數據類型更改爲String。

String num1; 
String num2; 

然後在case語句應該區分 「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; 

如果你正在服用的輸入爲整數,然後轉換爲字符串

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]); 

的陣列整數的情況下如果用戶輸入單個數字,則邏輯應該如下:

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 = ""; 
     }