2015-11-02 59 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语句),这将允许你指定伍尔夫的价值。