Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用switch语句时遇到问题_Java_Switch Statement - Fatal编程技术网

在Java中使用switch语句时遇到问题

在Java中使用switch语句时遇到问题,java,switch-statement,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

我想让我的程序写出你用文字输入的数字。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);

}

}

您的变量num1和num2是整数,您正在为它们分配字符串值。那不行。 因此,您可以使用另一个字符串变量来存储字符串的值


但最重要的是,你把数字转换成单词的逻辑是错误的。尝试调试并更正它。

如果指定
intnum1=0;int num2=0在切换之前,它与写入相同:

switch(0) {}
尝试正确初始化
num1
num2


此外,您还尝试将字符串放入一个int变量,如@Matt Clark所添加的。

您正在num1和num2上应用开关,它们始终为0,而不是在输入上。此外,还将字符串值分配给int类型


如果您想使用switch实现所需的功能,则需要使用string[index]将输入字符串与其数字分开,但这似乎不是一个很好的方法

不能在switch语句中将字符串赋给int变量。 所以首先将num1和num2的数据类型更改为字符串

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;
若将输入作为整数,则将整数转换为字符串数组

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

int num1=0
num1=“One”
,您在这里使用的是不兼容的类型。