2015-11-02 89 views
-5
switch (wurf) 
    { 
     for(i=1;i<7;i++) 
     { 
       case [i]: d[i]++;break; //printf("%i: %i\n",i,d[i]); 
     } 
    } 

你好, 有沒有可能通過循環聲明的情況?我已經嘗試過'我',但它不起作用。由for循環切換case聲明?

+0

您是否正在嘗試做一些像[Duff's Device](https://en.wikipedia.org/wiki/Duff%27s_device)? –

+0

C是一種靜態語言!爲什麼不在循環中使用if(wurf == i)...? – Olaf

+0

我只是想算wurf的frequencys,所以我在想,以節省行的寫本,而不是: 情況下1:...... 案例2:..... 案例3:.. ... .... – hurm

回答

1

我不明白你爲什麼要switch在這裏。也許你只是想

d[wurf]++; 

如果邊界是很重要的,你可以用一個簡單的if檢查他們:

if(wurf >= 1 && wurf < 7) 
    d[wurf]++; 
0

不行,這樣是行不通的,但我不明白了一個道理爲什麼你不能只是做:

if (1 <= wurf && wurf < 7) 
    d[wurf]++; 
+0

「wurf」是一個數字,並應在陣列內的指定給它的數目(從1到6),來計算頻率。 – hurm

+0

@hurm這不是我的代碼嗎? – jwodder

+0

對不起,絕對!非常感謝你。解決proplem以及... – hurm

0

可以使用(for循環)內部的(if語句),這將允許你指定伍爾夫的價值。