布尔值不起作用,需要修复吗?

时间:2013-11-02 20:46:42

标签: java boolean

我想要的是输出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;

2 个答案:

答案 0 :(得分:3)

如果我理解正确,您需要检查您的输入确实是az之间的字母。

在这种情况下,您的if应为:

if( num2 >= 'a' && num2 <= 'z') {
    // okay, do something
}
else {
    // show error message
}

答案 1 :(得分:0)

您写的条件总是错误的:您要求num2等于'a' AND 'z'。您应该将其重写为num2 >= 'a' && num2 <= 'z'(注意更少/更多的符号会改变)。

排除'a'和'z'就像将>=更改为>,将<=更改为<一样简单。

&&表示AND,||表示OR。适当使用它们。 (与'a'和'z'匹配的条件是num2 == 'a' || num2 == 'z'。)