import java.util.Scanner;
import static java.lang.System.*;
public class Whativelearned {
enum MyfirstEnum {one, two, three}
public static void main(String[] args) {
Scanner keyboardinput = new Scanner(in);
MyfirstEnum trolley;
char a1;
out.println("Do you pee in the shower"? Y/N");
a1 = keyboardinput.findWithinHorizon(".", 0).charAt(0);
if (a1=='Y'||a1=='y') {
trolley=MyfirstEnum.one;
out.println("Ewwwwwww");
}
if (a1=='N'||a1=='n') {
trolley=MyfirstEnum.two;
out.println("Well somebody isn't being very honest");
}else {
out.println("You're not so keen on following instructions, are you?");
}
keyboardinput.close();
}
}
除了else
案例中的案例外,我希望我的if
陈述涵盖所有结果。
我希望它可以作为(!(a1=='Y'||(a1=='y'||a1=='n'||a2=='N'))
但是当我运行它时,列出else
语句似乎在所有情况下都会执行。
答案 0 :(得分:1)
试试这个
if (a1=='Y' || a1=='y') {
trolley=MyfirstEnum.one;
out.println("Ewwwwwww");
} else if (a1=='N' || a1=='n') {
trolley = MyfirstEnum.two;
out.println("Well somebody isn't being very honest");
} else {
out.println("You're not so keen on following instructions, are you?");
}
答案 1 :(得分:0)
else
语句始终特定于一个if
语句。因此,只要不满足最后else
条件,就会执行if
子句。
只有在不符合任何条件的情况下才能执行您的条款,您需要将if
语句更改为else if
,如下所示:
if (a1 == 'y' || a1 == 'Y') {
// ...
} else if (a1 == 'n' || 'a1 == 'N') {
// ...
} else {
// ....
}
解决此问题的另一种方法是使用switch
语句。这些用于将变量与一组常量进行比较。您可以像这样使用它们:
switch (a1) {
case 'y':
case 'Y':
// ...
break;
case 'n':
case 'N':
// ...
break;
default:
// ...
}
在其他情况下尝试之前,请阅读有关switch
声明的更多信息。
答案 2 :(得分:0)
只需在第二个else
循环中写for
:
else if (a1=='N'||a1=='n') {
答案 3 :(得分:0)
干运行最能理解代码执行。
if
语句已经过检查,如果是,则执行相应的过程。if
语句。此if
语句检查与上述if
互斥的os的条件。如果它是真的(仅在上面的情况为假),则执行其相应的过程,如果其为假,则执行else
部分过程。 您需要使用if
后跟if else
,然后else