可变印刷问题

时间:2014-03-05 04:20:57

标签: java

为什么当它假设只有20中的5时,它会印上所有的值。

我试着评估价值钱上的任何东西,然后我计算。

    int stamp50 = 0;
    int stamp20 = 0;
    int stamp1 = 0;
    int total = 0;

    int money = 100;

    if (money > 50) {
        total = money % 50;
        stamp50 = money / 50;

        total = money % 20;
        stamp20 = money / 20;

        total = money % 1;
        stamp1 = money / 1;

    } else if (money >= 20 && money <= 50) {
        total = money % 20;
        stamp20 = money / 20;

        total = money % 1;
        stamp1 = money / 1;
    } else if (money < 20) {
        total = money % 1;
        stamp1 = money / 1;
    }

    System.out.println(" De 50 " + stamp50 + " De 20 " + stamp20 + " De 1 " + stamp1);

1 个答案:

答案 0 :(得分:0)

所以你上面说过,你得到的输出是:"De 50 0 De 20 1 De 1 20",你想得到的输出是"De 50 0 De 20 5 de 1 0"

    total = money % 50;
    stamp50 = money / 50;

    total = money % 20;
    stamp20 = money / 20;

    total = money % 1;
    stamp1 = money / 1;

输出应该是,根据你的程序是:

"De 50 2 De 20 5 de 1 100"

我认为,根据您预期的输出,您正在为

进行错误的计算

stamp50 = money / 50; stamp1 = money / 1;

也许他们应该是%标志,而不是/。或者你可能没有使用正确的变量?

stamp50 = total / 50; stamp1 = total / 1;

也许你可以解释一下你正在尝试做什么,我们可以帮助你更多。