0

私が欲しいのは、AまたはZを出力することです。

A と Z の間の他のすべては、A と Z を除いて機能します。equals と && を使用して「else if」を追加しようとしましたが、機能しません。

「System.out.println(ConvertLetterToDigit(num2));」入力を受け取り、「int」値を返すスイッチに転送します。

さらに情報が必要な場合は、以下にコメントしてください._.

 char num1;
 char num2;
 String num3;
 String equality;
 System.out.println("\nThis game consists of inputting a digit and we will output the character linked to that digit.");
 do 
 {
 System.out.println("Please input a letter.");
 equality= "^[a-zA-Z](1)";
 num3 = console.next();
 if (num3.length() < 2);
 {
 if (num3.matches(equality))
 {
     num2 = (char)num3.charAt(0);
    System.out.println(ConvertLetterToDigit(num2));
 }
 else if (num3.length() > 1)
 {
    System.out.println("We said 1 letter.");
 }
 else 
     {
        System.out.println("What do you think you're doing.");
    }

 }
 } while (!num3.matches(equality));
 break;
4

2 に答える 2

3

私の理解が正しければ、入力が実際にaとの間の文字であることを確認してくださいz

その場合、次のようにするif必要があります。

if( num2 >= 'a' && num2 <= 'z') {
    // okay, do something
}
else {
    // show error message
}
于 2013-11-02T20:50:11.323 に答える
0

あなたが書いた条件は常に偽です: あなたはnum2等しい必要があります'a'AND to 'z'. おそらく次のように書き直す必要がありますnum2 >= 'a' && num2 <= 'z'(符号が小さい/大きいことに注意してください)。

'a' と 'z' を除外するのは、 とに変更>=するのと同じくらい簡単です。><=<

&&は AND を||意味し、OR を意味します。それらを適切に使用してください。(「a」と「z」の両方に一致する条件はnum2 == 'a' || num2 == 'z'.)

于 2013-11-02T20:50:33.430 に答える