2014-01-30 5 views
0
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."); 
     } 
    } 
} 

Это то, что у меня есть до сих пор. В принципе, мне нужно сделать что-то, что вводит в алфавитном порядке и отображает, какая цифра соответствует этой букве на мобильном телефоне, и принимает только заглавные буквы и отображает ошибку, когда что-то еще вводится. Последнее, что я хочу, это кто-то сделать это для меня, я просто хочу, чтобы руководство.Я продолжаю получать ошибку в двух экземплярах

+3

Как вы думаете, 'и' делает? –

+0

Shhh Я вижу сейчас;) – suislaluna

ответ

2

Я предполагаю, что вы имели в виду

case 'A': 
case 'B': 
case 'C': domSomethingHere(); break 

case 'E': 
case 'F': 
case 'G': domSomethingHere(); break 
+0

А, ладно. Так будет ли этот метод даже лучшим для того, что я ищу? – suislaluna

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 
+0

Спасибо! Я собираюсь поиграть с ним еще немного. – suislaluna

Смежные вопросы