continue在switch和for 中的使用

本文通过一个C语言示例程序,展示了switch语句与continue关键字的使用方法及效果。程序遍历字符数组,根据不同字符执行不同操作,并演示了continue如何跳过当前循环迭代。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.代码:

#include<stdio.h>
void main ()
{
  char temp[10] = {'y','u','h','a','o','j','i','n','k'};
  int i;
  char* p = temp;
   for(i=0; i<5; i++)
   {
       switch(*(p+i))
      {  
       case 'y':
       printf("y\n");
       break;
       case 'u':
       printf("u\n");
       continue;
       case 'h':
       printf("h\n");
       break;
       default:
       printf("Invalid character!!\n");
       break;
      }
       printf("loop is %d\n",i);
   }  
}
2.结果:

y
loop is 0
u
h
loop is 2
Invalid character!!
loop is 3
Invalid character!!
loop is 4

3.总结

continue只对for循环有效,遇到continue直接执行下一次循环,switch后面的printf("loop is %d\n",i)不会执行;break语句对for 和 switch都有效,上述例子,break在switch里面,优先对switch有效,所以遇到break则直接退出switch语句,但是后面printf("loop is %d\n",i)语句会继续执行。看了好多人写的解释,太啰嗦了,按照自己的想法写个测试程序,运行一下就都清楚了,还是需要多动脑、多动手。

### 在 `switch` 语句中使用 `break` `continue` 关键字 #### 使用 `break` 在 `switch` 语句内部,`break` 的主要功能是终止当前的 `case` 并退出整个 `switch` 结构。这防止了代码继续执行后续的 `case` 或默认分支。 ```cpp #include <iostream> using namespace std; int main() { int grade; cout << "Enter a number between 0 and 100: "; cin >> grade; switch (grade / 10) { case 9: case 10: cout << "Grade is A." << endl; break; // 跳出switch结构 case 8: cout << "Grade is B." << endl; break; // 跳出switch结构 default: cout << "Other grades." << endl; } } ``` 此代码片段展示了如何利用 `break` 来确保一旦匹配到某个条件就立即结束 `switch` 执行并返回控制权给调用者[^2]。 #### 使用 `continue` 对于 `continue`,其行为取决于上下文环境——即是否位于循环之内。单独存在于 `switch` 中时,`continue` 是不允许使用的;然而,在嵌套于循环内的 `switch` 中,则允许使用 `continue` 来跳过当前迭代剩余部分并开始下一个迭代。 ```cpp #include <iostream> using namespace std; int main(){ for(int i=0;i<5;i++){ int num=i%3; switch(num){ case 0: cout<<"Number divisible by 3, skipping rest of loop body.\n"; continue; // 开始下一次for循环迭代 case 1: cout<<"Case 1 encountered\n"; break; default: cout<<"Default case reached\n"; } cout<<"End of iteration "<<i<<"\n"; } } ``` 上述实例说明了在一个 `for` 循环内包裹着 `switch` 表达式的场景里,当满足特定情况 (`num==0`) 后触发 `continue` 操作来提前完成本轮循环,并直接进入下一圈循环过程[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值