【问题标题】:how to solve error break statement is not within loop or switch [closed]如何解决错误中断语句不在循环或开关内[关闭]
【发布时间】:2021-11-20 03:07:05
【问题描述】:

嗨,我正在学习计算机,我们得到了这个任务来做 c 中的 break 语句 这是我的代码

#include<stdio.h>
int main()
{
    float num, sum=0;
    int i,n;
    
    printf("Maximum no. of inputs\n");
    scanf("%d", &n);
    
    for(i=1; i<=n; ++i);
    {
        printf("Enter number %d: ", i);
        scanf("%f", &num);
        
        if(num<0.0)
         break;         //for loop breaks if num < 0.0
         
    sum = sum + sum;
    }
    
    printf("Total addition: %.2f ", sum);
    return 0;
}

我已经按照我的讲座指导进行了复制,但我得到了错误 break statement is not within loop 或切换。我不知道错了所以我希望你能告诉我错误并为我解释一下谢谢

【问题讨论】:

  • 错字:正如答案所指出的,for(i=1; i&lt;=n; ++i); 末尾有一个杂散的分号需要删除。

标签: c loops break


【解决方案1】:

在你的for 循环之后你有一个流浪的;

//     here  ------v
for(i=1; i<=n; ++i);
{

这意味着您实际上有一个 for 循环,其主体为空,后跟一个独立的块语句,因此 break 不在循环内。

去掉多余的;,让块语句成为循环体。

for(i=1; i<=n; ++i)
{

【讨论】:

  • 感谢帮助并指出错误
  • @Zerefslayer 很高兴我能帮上忙。如果您觉得有用,请随时 accept this answer
【解决方案2】:

for(i=1; i&lt;=n; ++i); 行添加了一个分号,以防止执行 for 循环的内容。更正后的代码如下:

#include<stdio.h>
int main()
{
    float num, sum=0;
    int i,n;
    
    printf("Maximum no. of inputs\n");
    scanf("%d", &n);
    
    for(i=1; i<=n; ++i)
    {
        printf("Enter number %d: ", i);
        scanf("%f", &num);
        
        if(num<0.0)
         break;         //for loop breaks if num < 0.0
         
    sum = sum + sum;
    }
    
    printf("Total addition: %.2f ", sum);
    return 0;
}

【讨论】:

  • 感谢指出错误我会记住不要犯同样的错误
猜你喜欢
  • 2013-04-21
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
  • 1970-01-01
相关资源
最近更新 更多