在Java

时间:2016-11-25 19:08:37

标签: java switch-statement

我希望我的程序能够写出您输入的数字。例如。 52 =五十二。 我在这做错了什么??? 它不想接受这些单词,但我不能将变量更改为字符串,所以我卡住了!

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

}

}

4 个答案:

答案 0 :(得分:0)

您的变量num1和num2是整数,您要为它们分配字符串值。那不会奏效。 所以你可以有另一个字符串变量来存储字符串的值。

但最重要的是,将数字转换为单词的逻辑是错误的。尝试调试并纠正它。

答案 1 :(得分:0)

如果您在切换前指定int num1 = 0; int num2 = 0;,则与写作相同:

switch(0) {}

尝试正确初始化num1num2

你也试着把字符串放到一个int变量中,就像@Matt Clark补充的那样。

答案 2 :(得分:0)

您正在应用始终为0且不在输入上的num1和num2上的开关。您还要为int类型分配字符串值。

如果你想使用switch来实现你想要的东西,你需要使用string [index]将输入字符串分成数字,但这似乎不是一个非常好的方法。

答案 3 :(得分:0)

您不能在switch语句中将String赋值给int变量。 因此,首先将num1和num2的数据类型更改为String。

String num1;
String num2;

然后在case语句中它应该是case“1”而不是case 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;

如果您将输入作为整数,则将整数转换为String

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