意外类型

时间:2015-10-03 03:04:59

标签: java compiler-errors

我对Java很新。这个代码块有问题。试图找到支付一定金额所需的最少数量的硬币(例如398美分)。

在我尝试减去20,25,30,35,40,45和50行后,我收到错误unexpected type. Required: variable. found: Value.。我想减去一个值。我想我必须使用一种方法,但我不确定如何。任何帮助都将非常感激。

public class MakingChange {

    public static void main(String[] args) {
        int a = 398;
        int b;
        int c;
        int d;
        int e;
        int f;
        int g;
        int h;
        int j;
        int k;
        int i;
        int l;
        int m;
        int n;
        int o;

        if (a > 0) {
            if (a >= 200) {
                i = (int) a / 200;
                a - i * 200 = b;
            } else {
                a = b;
            }

            if (b >= 100) {
                j = (int) a / 100;
                b - j * 100 = c;
            } else {
                b = c;
            }

            if (c >= 25) {
                k = (int) c / 25;
                c - k * 25 = d;
            } else {
                c = d;
            }

            if (d >= 100) {
                l = (int) d / 100;
                b - l * 100 = c;
            } else {
                d = e;
            }
            if (e >= 10) {
                m = (int) e / 10;
                e - m * 10 = f;
            } else {
                e = f;
            }

            if (f >= 5) {
                n = (int) f / 5;
                f - n * 5 = g;
            } else {
                f = g;
            }

            if (g >= 1) {
                o = (int) g / 1;
                g - o = h;
            } else {
                g = h;
            }
            System.out.println(i + j + k + l + m + n + o);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

你不能说像g-o=h这样的话。这是在赋值的左侧放置一个值表达式(g-h)。如果您要将g-o分配给h,请说出h = g-o。你有很多这样的人。

答案 1 :(得分:0)

Java语言中的赋值操作涉及以下语法:

变量=表达式

首先计算右侧的表达式,并将结果值赋给左侧的操作数。因此,按照这个规则,赋值的LHS必须严格地是一个变量,它可以引用原始类型,用户定义类型或数组。

您的代码中违反此原则的块是:

 a - i * 200 = b;
 b - j * 100 = c;
 c - k * 25 = d;
 b - l * 100 = c;
 e - m * 10 = f;
 f - n * 5 = g;
 g - o = h;