Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果和切换相同的任务,结果会不同吗?_Java_If Statement_Switch Statement - Fatal编程技术网

Java 如果和切换相同的任务,结果会不同吗?

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

我有一个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 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”的变量。这是唯一的问题吗?