Java 如果和切换相同的任务,结果会不同吗?
我有一个switch和一个if语句,它们是等价的。他们都应该拿一根绳子,如果是做某事,如果不是做另一件事。无论输入什么,if语句都不执行任何操作,但switch语句执行。为什么呢 以下是if声明:Java 如果和切换相同的任务,结果会不同吗?,java,if-statement,switch-statement,Java,If Statement,Switch Statement,我有一个switch和一个if语句,它们是等价的。他们都应该拿一根绳子,如果是做某事,如果不是做另一件事。无论输入什么,if语句都不执行任何操作,但switch语句执行。为什么呢 以下是if声明: if (yes.equals("yes")){ System.out.println ("Enter your first number"); fnum = x.nextDouble(); System.out.println ("Enter your second numbe
if (yes.equals("yes")){
System.out.println ("Enter your first number");
fnum = x.nextDouble();
System.out.println ("Enter your second number");
snum = x.nextDouble();
calculations(fnum, snum);
}
if (yes.equals("No")) {
System.out.println("okay, bye then!");
}
这是开关:
switch (yesno){
case "yes":
System.out.println ("Enter your first number");
fnum = x.nextDouble();
System.out.println ("Enter your second number");
snum = x.nextDouble();
calculations(fnum, snum);
break;
case "no":
System.out.println("k bye");
这不是重复的,因为问题在if语句中。我的交换机已标记为重复
我有一个switch和一个if语句,它们是等价的
事实上,它们并不等同:
if版本检查是或否。但开关版本检查是或否。由于这两种情况下的检查区分大小写,如果输入为否,您将得到不同的结果。。。或者不
两个版本检查不同的变量;i、 是的,是的。这可能会有所不同,具体取决于上下文
这两者都可以解释你所看到的不同行为
我以为是和是会是平等的,但他们不是。。。?知道为什么吗
很明显,名称不同,所以它们不能是相同的变量
然而,它们是不同变量的事实并不一定意味着它们有不同的值。这些值决定了代码的行为
当然,如果yesno包含正确的yes或no值,而yes包含其他值,例如,那么这将给出您正在观察的行为。显然,这是一个假设性的诊断。如果您想要更具体的答案,请向我们展示相关代码。1您的交换机需要一个中断语句。你对代码缩进的创造性使用需要改进。我怀疑它们是否真的被输入了。调试并逐步完成。我在编辑中添加的break语句是正确的,但是为什么if语句不起作用呢?再次:请修复缩进。太可怕了。这样做,除非你的目标真的是试图迷惑那些试图理解你的代码的人。if语句没有使用该变量,而是使用一个名为“yes”的变量。这是唯一的问题吗?