2015-10-03 59 views
-1

我對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); 
     } 
    } 
} 
+0

什麼都像一個'那些表達 - 我* 200 = B;'? – Tiny

回答

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; 
0

你不能說像g-o=h這樣的事情。這是在作業的左側放置一個值表達式(g-h)。如果您想將g-o指定爲h,那麼請說h = g-o。你有一堆。

+0

應該在評論 – manetsus

+0

@manetsus爲什麼這應該是一個評論?對於這個「問題」,這是一個非常有效的答案。 –

+0

爲什麼這'不能提供問題的答案'?我想知道,所以我不再這樣做,但我看到一堆「刪除此帖子」的建議。答案是事實和正確的。什麼是「不提供」?還是你說評論「應該在評論中」是否「不提供對問題的答案」?謝謝。 –