java 无法在IF语句中打印所需结果[已关闭]

2cmtqfgy  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(116)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
17小时前关门了。
Improve this question
当我提供“10”作为输入值时,它返回“950”,它应该返回“900”作为输出吗?

public static void main(String[] args) {
        int m = 10;

        System.out.println(saleHotdogs(m));
    }

    public static int saleHotdogs(final int n){
        // show me the

        int moneySpent = 0;
        if(n < 5) {
            moneySpent = 100 * n;
        }else if(n >= 5 || n < 10) {
            moneySpent =  95 * n;
        }else{
            moneySpent = 90 * n;
        }
        return moneySpent;
    }
fruv7luv

fruv7luv1#

对于n = 10,由于10不小于5,因此不满足第一个if条件。
然后,程序移动到
否则如果(n ≥ 5|| n〈10)
条件,转换为10大于等于5或10小于10。
由于第一个条件为真,因此运行此语句,因此返回值为950
在这条语句之后,“else”部分将不会运行,因为它只会在当前if条件为false的情况下执行。

如果希望仅在两个语句都为真时才运行条件2,请使用&&而不是||(或)。这将返回900。

相关问题