【问题标题】:switch case declaration by a for loop? [closed]通过 for 循环切换案例声明? [关闭]
【发布时间】:2015-11-02 21:04:56
【问题描述】:
   switch (wurf)
    {
        for(i=1;i<7;i++)
        {
               case [i]: d[i]++;break; //printf("%i: %i\n",i,d[i]);
        }
    }

你好, 是否有可能通过循环声明案例?我已经尝试过'i',但它没有用。

【问题讨论】:

  • 你想尝试像Duff's Device这样的想法吗?
  • C 是一种静态语言!为什么不在循环中使用if ( wurf == i ) ...
  • 我只是想计算 wurf 的频率,所以我想保存行并写下这个而不是:案例 1:......案例 2:......案例3:…………
  • 与简单地索引到数组相比,开关如何保存行?复习您对编程概念的理解。

标签: c for-loop switch-statement


【解决方案1】:

我不明白您为什么要在这里使用switch。也许你只是想要

d[wurf]++;

如果边界很重要,您可以使用简单的if 进行检查:

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

【讨论】:

    【解决方案2】:

    不,这种方式行不通,但我看不出你不能这样做的原因:

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

    【讨论】:

    • "wurf" 是一个数字,应该指定它在数组中的编号(从1到6),来统计频率。
    • @hurm 我的代码不就是这样吗?
    • 对不起,绝对!非常感谢你。这也解决了问题......
    【解决方案3】:

    您可以在(if-statement)中使用(for-loop),这将允许您指定 wulf 的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 2016-01-08
      • 2015-10-24
      相关资源
      最近更新 更多