import java.util.Scanner;
public class Selection
{
public static void main (String[] args) throws java.lang.Exception
{
char key = 'A';
Scanner in = new Scanner(System.in);
System.out.println("Enter a letter to find the corresponding digit on a cellphone: ");
int digit;
switch (key) {
case 'A' & 'B' & 'C': digit = 2;
break;
case 'D' & 'E' & 'F': digit = 3;
break;
case 'G' & 'H' & 'I': digit = 4;
break;
case 'J' & 'K' & 'L': digit = 5;
break;
case 'M' & 'N' & '0': digit = 6;
break;
case 'P' & 'Q' & 'R' & 'S': digit = 7;
break;
case 'T' & 'U' & 'V': digit = 8;
break;
case 'W' & 'X' & 'Y' & 'Z': digit = 9;
break;
default: System.out.println("There is no matching digit for that character.");
System.out.println("The letter " + key + " corresponds to the number " + digit + " on a cellphone.");
}
}
}
这是我到目前为止所拥有的。基本上,我需要制作一些字母字符输入并在手机上显示与该字母对应的数字,并且只接受大写字母并在输入其他内容时显示错误。我想要的最后一件事就是有人为我做这件事,我只想要指导。
答案 0 :(得分:3)
&
运营商没有按照您的想法行事。它正在执行按位和字符中的位,并且某些情况的结果是相同的。根据我的IDE,
'A' & 'B' & 'C' => '@'
'G' & 'H' & 'I' => '@'
'P' & 'Q' & 'R' & 'S' => 'P'
'W' & 'X' & 'Y' & 'Z' => 'P'
即使没有重复的情况,您的代码也无法正常工作,因为您有自己没有想到的字符的情况。要为多个案例执行相同的代码,请尝试以下方法:
case A:
case B:
case C:
digit = 2;
break;
case D:
case E:
case F:
digit = 3;
break;
// and so on
答案 1 :(得分:2)
我想你的意思是
case 'A':
case 'B':
case 'C': domSomethingHere(); break
case 'E':
case 'F':
case 'G': domSomethingHere(); break