在Java中使用switch语句时遇到问题
我想让我的程序写出你用文字输入的数字。52=五十二。 我做错了什么??? 它不想接受单词,但我也不能将变量更改为字符串,所以我卡住了在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
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”
,您在这里使用的是不兼容的类型。