Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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 在else语句满足其要求后,如何执行if语句?_Java_If Statement - Fatal编程技术网

Java 在else语句满足其要求后,如何执行if语句?

Java 在else语句满足其要求后,如何执行if语句?,java,if-statement,Java,If Statement,} 我对Java非常陌生,但我注意到Java代码往往会被执行,而不管后面的代码是否满足条件。 因此,在这里我希望执行else代码(在socks>hankees的情况下) 但是后面的if语句得到了适当的考虑。 如果有人能解释一下原因,我将不胜感激 编辑: 这是一本书中的代码,最初的格式是每个人都指出的方式(if->else if->else) 我只是改变了一些事情,我遇到了一些令人困惑的结果。 当我为手帕和袜子分别输入10和90时,更改了代码(发布了第一个代码),结果就是这样 手帕和袜子得分?10

}

我对Java非常陌生,但我注意到Java代码往往会被执行,而不管后面的代码是否满足条件。 因此,在这里我希望执行else代码(在socks>hankees的情况下) 但是后面的if语句得到了适当的考虑。 如果有人能解释一下原因,我将不胜感激

编辑: 这是一本书中的代码,最初的格式是每个人都指出的方式(if->else if->else)

我只是改变了一些事情,我遇到了一些令人困惑的结果。 当我为手帕和袜子分别输入10和90时,更改了代码(发布了第一个代码),结果就是这样

手帕和袜子得分?1090

袜子赢了。。。 袜子:90 申请人数:10

就好像没有执行else语句一样(我确实希望执行else语句,因为在最后一个if语句之前满足了条件)


我的问题是:为什么不执行

您的算法有一点错误。无论使用哪种编码语言,if语句都将从上到下进行处理。然后,在(socks>hankees)的情况下,将执行第一个else块代码,因为第一个if条件为false。然后第二个else将为true,因此第三个块代码也将被执行

现在是使用
else if
关键字的好时机

public static void main(String args[]) {
    Scanner keyboard = new Scanner(System.in);
    int hankees, socks;

    out.print("Hankees and Socks scores?  ");
    hankees = keyboard.nextInt();
    socks = keyboard.nextInt();
    out.println();

    if (hankees > socks) {
        out.println("Hankees win...");
        out.print("Hankees: ");
        out.println(hankees);
        out.print("Socks:   ");
        out.println(socks);
    } else {
        out.println("It's a tie...");
        out.print("Hankees: ");
        out.println(hankees);
        out.print("Socks:   ");
        out.println(socks);
    }
    if (socks > hankees) {
        out.println("Socks win...");
        out.print("Socks:   ");
        out.println(socks);
        out.print("Hankees: ");
        out.println(hankees);
    } 

    keyboard.close();
}

当我运行此命令时,会得到以下结果:

if(hankees > socks){
    //hankees won
}
else if(hankees == socks){
    //it's a tie
}
else{
    //socks won
}

因此,为了回答您的问题,else语句应该并且确实运行。如果你没有得到“这是一条领带…”部分,你必须有一个与你在这里发布的代码稍有不同的代码。

那么你的else statemnet应该是第一条语句,然后是“if条件”,或者你可以添加一个while循环。

不清楚你在问什么。你在期待什么?为什么?实际上发生了什么事情没有达到你的期望?为什么不呢?什么是“适当考虑”呢?这就是我在你的问题中迷失的地方。你是在问为什么第二个if(socks>hankees)会被处决吗?大家好,很抱歉搞混了,我编辑了原来的帖子。我希望这澄清了我的问题。这是确切的结果。我刚才又执行了一次以确定。如果keyword',则没有'
else'。有一个
if
关键字和一个
else
关键字。@EJP我建议您使用这个关键字^^我发现了问题所在,我在运行代码时取消选中Eclipse中弹出的“保存代码”框。谢谢你的帮助。
It's a tie...
Hankees: 10
Socks:   90
Socks win...
Socks:   90
Hankees: 10