0

ユーザーが入力した文字が母音か子音かを判断するために Java メソッドを呼び出そうとしています。メソッドを適切に呼び出す方法がわからない。

import java.util.*;
public class HW8Problem1{
   public static void main(String[] args) {

      Scanner input = new Scanner(System.in);

      System.out.print("Enter a letter: ");

      String letter = input.nextLine();

   }

   public static void vowel(String a){

      if (a.charAt(0) == 'a' || a.charAt(0) == 'A'){
         System.out.println(" is a vowel");

         if (a.charAt(0) == 'e' || a.charAt(0) == 'E')
            System.out.println(" is a vowel");

         if (a.charAt(0) == 'i' || a.charAt(0) == 'I')
            System.out.println(" is a vowel");

         if (a.charAt(0) == 'o' || a.charAt(0) == 'O')
            System.out.println(" is a vowel");

         if (a.charAt(0) == 'u' || a.charAt(0) == 'U')
            System.out.println(" is a vowel");

         else
            System.out.println(" is a consonant");    

      }
   }
}
4

3 に答える 3

2

Mureinik が言ったように、次を使用してメソッドを呼び出すことができますがvowel(line);
、コードを見て、別の改善をお勧めします。常に同じことを繰り返さないようにしてください。コードのほぼ同じ部分を何度も繰り返していることがわかりますか? 重複を削除し、別の方法でメソッドを作成します。たとえば、次のようになります。

private static boolean isVowel(String line) {
    line = line.toLowerCase();
    return line.equals("a") || line.equals("e") || line.equals("i") || line.equals("o") || line.equals("u");
}

そして、mainメソッドで印刷するだけです

System.out.println(isVowel(line) ? " is a vowel" : " is a consonant");

この解決策は、lineが ではなくnullであると仮定していることに注意してくださいline.length() == 1。メソッドに単語を渡さないように、自分で入力パラメーターの処理を実行してみてくださいisVowel()

于 2015-11-13T21:08:20.567 に答える
2

名前の後に括弧 ( ()) を指定することで、メソッドを呼び出すことができます。この括弧には、メソッドに渡す引数がある場合はその引数が含まれます。あなたの場合、例えば:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a letter: ");
    String letter = input.nextLine();
    vowel(letter); // Here!
}
于 2015-11-13T20:53:38.307 に答える
1

以下は私の提案です。テスト済みで、うまく機能しています。if 式が 1 行に収まっていることを確認する必要があることに注意してください。

import java.util.*;

public class HW8Problem1{
   public static void main(String[] args) {

      Scanner input = new Scanner(System.in);

      System.out.print("Enter a letter: ");

      String letter = input.nextLine();
//the below is the start of  IF expression, put it in one line code
      if (letter.toUpperCase().charAt(0)== 'A'||letter.toUpperCase().charAt(0)== 'E'||letter.toUpperCase().charAt(0)== 'O'||letter.toUpperCase().charAt(0)== 'i'||letter.toUpperCase().charAt(0)== 'U' ){ //End of IF expression until here, in 1 line
            System.out.println("is a vowel");
      }else{
        System.out.println(" is a consonant"); 
      }
      
   
   }

 }
于 2020-08-19T07:24:20.767 に答える