循环结构程序设计

for 语句

  • 当需要重复执行一段代码很多遍的时候,可以使用循环结构来解决问题。

  • 那么什么是循环结构呢?

    • 循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
    • 由循环体中的条件,判断继续执行该功能还是退出循环。
  • for循环

    • for 循环语法
    for (循环变量赋初始值;循环条件;更新循环变量) {
        循环体
    }
    
  • 循环控制语句 break

    • 除了正常的循环之外,循环控制语句可以更改程序执行的正常序列。循环控制语句常用的是 breakcontinue

    • break 用法

      • switch语句中也有用到过,用于停止执行模块内后面的程序语句
        • 通常放在循环体中,当执行到这句语句时,跳出整个循环,也就是说整个循环立即终止
  • 循环控制语句 continue

    • continue 用法
      • 通常也是放在循环体中,当执行到这句语句时,跳过当前循环体,强迫进入下一次循环

while 循环

  • while循环只关注循环终止的条件循环体的内容本身。
  • while 语法:
while (循环成立条件) {
    循环体
}
  • while 循环执行逻辑
    • 只要循环成立条件为真,就进入循环体
    • 重复这个步骤,直到循环成立条件为假

do while 循环

  • 无论如何,至少要执行一次猜数字的操作,可以用 do while 的写法

Tips:在刚刚的代码中,可以发现在循环体里有猜数字(cin >> guess)的操作,在循环开始前也有猜数字的操作。这就适合用 do while

  • do while 语法
do {
    循环体
} while (循环成立条件);
  • do while执行逻辑
    • while类似
    • 唯一的区别在于:因为条件表达式出现在循环的尾部,所以至少会执行一次循环体,执行完成后,再判断是否进入下一次循环。

for 和 while 的比较

  • 相同点:都是表达循环结构的语句,都可以使用breakcontinue作为循环控制语句
    • break:当执行到这句语句时,跳出循环,也就是说整个循环立即终止。
    • continue:当执行到这句语句时,跳过当前循环,强迫进入下一次循环。
  • 不同点:for循环需要清楚循环次数/循环变量的变化范围;while循环只需要知道什么时候停下来就好。

多重循环

正如if语句可以通过嵌套,实现分支内部的新分支,循环也是可以嵌套的。

  • 循环嵌套适用于循环的大操作里有重复的小操作的情景。
  • 举例

假设我们要打印一个九九乘法表:

img

循环的大操作:对于1-9,每个数字都打印一行  大操作中重复的小操作:在第i行里,对于每个小于等于i的数字j,都打印出ij组成的乘法公式。

如果我们用for循环内部嵌套for循环的方式来写,代码是这样实现的:

// 1-9,每个数字打印一行
for (int i = 1; i <= 9; i++) {
    // 在第i行中,对于每个小于i的数字,都打印一个等式和tab分隔
    for (int j = 1; j <= i ; j++) {
        cout << j << "*" << i << "=" << j*i << "\t";
    }
    // 第i行最后打印换行符
    cout << endl;
}

如果我们用for循环内部嵌套while循环的方式来写,代码就是这样的:

// 1-9,每个数字打印一行
for (int i = 1; i <= 9; i++) {
    // 在第i行中,对于每个小于i的数字,都打印一个等式和tab分隔
    int j = 1;
    while (j <= i) {
        cout << j << "*" << i << "=" << j*i << "\t";
        j++;
    }
    // 第i行最后打印换行符
    cout << endl;
}
  • 通过这个例子,我们一起来看看循环嵌套的注意事项
    • 可以任意嵌套,比如forforforwhilewhileforwhilewhile都可以
    • 如果是forfor内外层的循环变量(比如上述代码的ij)需要用不一样的变量,否则容易产生混乱
    • 在嵌套操作中都需要使用缩进,以增强代码可读性
      lewhile`都可以
    • 如果是forfor内外层的循环变量(比如上述代码的ij)需要用不一样的变量,否则容易产生混乱
    • 在嵌套操作中都需要使用缩进,以增强代码可读性
    • 可以多层嵌套,但是有时候太多层嵌套容易超时,需要引起注意
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值