2015-02-15 3 views
0

Итак, моя программа должна побуждать пользователя вводить одну букву и сообщать им, является ли письмо согласным или гласным, и если они вводят что-либо, отличное от одной буквы, им, что они ввели неверный ответ. Могу ли я использовать случай if-else и оператор switch одновременно, потому что это то, что я пытаюсь сделать здесь, поскольку это кажется самым простым.определить, что письмо является гласным или согласным

import java.util.Scanner; 

public class VowelConsonant 
{ 
    public static void main(String[] args) 
    { 
    Scanner input = new Scanner(System.in); 

    System.out.print("Enter a letter: "); 
    char c1 = input.nextLine().charAt(0); 

    if ((c1>= 'a' && c1<= 'z') || (c1>= 'A' && c1<= 'Z')){ 

     switch(c1){ 
     case 'a': 
     case 'e': 
     case 'i': 
     case 'o': 
     case 'u': 
     case 'A': 
     case 'E': 
     case 'I': 
     case 'O': 
     case 'U': 
     System.out.println("Letter is a vowel"); break; 

     default: 
     System.out.println("Letter is a consonant"); 
     } 

     } 

    }    

}}

Я не знаю, как добавить еще заявление о том, если это не письмо, что вход был недействителен.

ответ

0
List<char> vowels = new ArrayList<char>(Arrays.asList("a", "e", "i", "o", "u"); 
List<char> consonants = new ArrayList<char>(Arrays.asList("b", "c" ... etc); 

char checkChar = Character.toUpperCase(c1); 

if (vowels.contains(checkChar)) { 
    // it's a vowel 
} else if (consonants.contains(checkChar)) { 
    // it's a consonant 
} else { 
    // it's neither 
} 

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

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