0

我想要的是输出A或Z。

除了 A 和 Z 之外,A 和 Z 之间的所有其他内容都有效,我尝试使用等于和 && 添加“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

如果我理解正确,您想检查您的输入是否确实是 and 之间的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 回答