首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于c编程中的break语句和循环的终止

关于c编程中的break语句和循环的终止
EN

Stack Overflow用户
提问于 2021-02-18 00:00:02
回答 2查看 103关注 0票数 1

我对这个程序中的break语句有疑问。

从技术上讲,break语句终止它所在的循环,但是在这个程序中,breakif语句中。

所以,这里的break应该只终止if语句,对吗?但它也会终止do-while语句。

抱歉,如果我问错了什么。我是编程新手

代码语言:javascript
复制
#include <stdio.h>

int main()
{
    int count;
    char response;

    for (count = 1; count <= 100; count++)
    {
        printf("count = %d\n", count);
    
        printf("enter y to continue or any other key to quit");
    
        scanf(" %c", &response);
    
        if (response != 'y')
            break;
    }

    printf("thank you!\n");
    return 0;
}
EN

回答 2

Stack Overflow用户

发布于 2021-02-18 00:02:11

根据C标准(6.8.6.3 break语句)

2 break语句终止最小的封闭switch或迭代语句的执行。

此if语句中的break语句

代码语言:javascript
复制
if (response !='y')
    break;

终止封闭的for语句的执行。

你可以这样想象它的动作:

代码语言:javascript
复制
for (count=1;count<=100;count++){
    //...    
    if (response !='y')
    goto L1;
}
L1:
printf("thankyou!");

如果if语句没有包含在迭代语句或switch语句中,则不能在if语句中使用break语句。

break语句是一个跳转语句,它将控制传递到最小的封闭switch或迭代语句之外。

票数 3
EN

Stack Overflow用户

发布于 2021-02-18 00:04:57

您可以在两种状态下使用"break“语句。

循环中的

  1. 开关中的
  2. -如果在循环中使用,则为case。当break语句工作时,循环将结束。如果您在switch-case中使用。当break语句在其中一个case中起作用时,其他case就不起作用。如果块不再运行,则隐式地表示循环结束。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66245572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档