C语言学习系列-->第四弹【分支和循环】(下)

简介: C语言学习系列-->第四弹【分支和循环】

五、while 循环

5.1 作用

满足循环条件,执行循环语句。

5.2 语法

while(条件表达式){
    //语句 
 }

在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环。

代码示例:

#include <stdio.h>
int main()
{
  int i = 1;
  while(i<=10)
  {
    printf("%d ", i);
    i = i+1;
  }
  return 0;
}

六、for 循环

6.1 作用

先判断条件表达式,满足循环条件,执行循环语句。

6.2 语法

for(初始化条件; 判断条件; 更新){
    //语句
}

for 循环中的表达式,要用分号进行分隔。
for 语句的三个部分中,任何一个部分都可以省略。
其中,若省略了判断条件,相当于判断条件永远为真。

代码示例:

#include <stdio.h>
int main()
{
  int i = 0;
  for(i=1; i<=10; i++)
  {
  printf("%d ", i);      //1 2 3 4 5 6 7 8 9 10
  }
  return 0;
}

for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形式上 for 循环要更优⼀些。

七、do-while

7.1 作用

满足循环条件,执行循环语句。

7.2 语法

do{
    //语句
}while(条件表达式);

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳
出循环;
⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表
达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

代码示例:

#include <stdio.h> 
int main() {
    int n;
    scanf("%d", &n);
    int sum = 10;
    do{  
        printf("%d\n", sum);  //输出sum的值和回车
        sum --;  //执行完一次循环,sum的值减1
    }while(sum >= n);  //当sum大于等于n时执行
    //若输入的n值大于10,则仍会先执行一次语句,再判断循环条件
    return 0;
}

八、 break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中
提供了 break 和 continue 两个关键字,就是应该到循环中的。
• break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执
⾏。
• continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所
差异的。

8.1 while循环中的break和continue

8.1.1 break举例

#include <stdio.h>
int main()
{
  int i = 1;
  while(i<=10)
  {
    if(i == 5)
      break;//当i等于5后,就执⾏break,循环就终⽌了
    printf("%d ", i);        //1 2 3 4
    i = i+1;
  }
  return 0;
}

打印了1,2,3,4后,当i等于5的时候,循环正 break 的地⽅终⽌,不再打印,不再循环。
所以 break 的作⽤就是永久的终⽌循环,只要 break 被执⾏, break 外的第⼀层循环就终⽌了。
那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤ break 来完成我们想要的效果。

8.1.2 continue举例

#include <stdio.h>
int main()
{
  int i = 1;
  while(i<=10)
  {
    if(i == 5)
      continue;
      //当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅
      //因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环
    printf("%d ", i);
    i = i+1;
  }
  return 0;
}

8.2 for循环中的break和continue

8.2.1 break举例

#include <stdio.h>
int main()
{
  int i = 1;
  for(i=1; i<=10; i++)
  {
    if(i == 5)
      break;
    printf("%d ", i);        //1 2 3 4
  }
  return 0;
}

break 的作⽤是永久的终⽌循环,未来我们在某个条件发⽣的时候,不想再继续循环的时候,就可以使⽤ break 来完成。

8.2.2 continue举例

#include <stdio.h>
int main()
{
  int i = 1;
  for(i=1; i<=10; i++)
  {
    if(i == 5)
      continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分
    printf("%d ", i);    //1 2 3 4 6 7 8 9 10
  }
  return 0;
}

所以在 for 循环中 continue 的作⽤是跳过本次循环中 continue 后的代码,直接去到循环的调
整部分。未来当某个条件发⽣的时候,本次循环⽆需再执⾏后续某些操作的时候,就可以使⽤
continue 来实现。

九、嵌套循环

嵌套循环就是将上述语句混合在一起使用

代码示例

#include <stdio.h> 
int main() {
    int n;
    scanf("%d", &n);
    for(int i = 1; i <= n; i ++){  //当i小于等于n时,执行循环体内的语句,执行之后,i的值加1
        for(int j = 1; j <= i; j ++){//当j小于等于i时,执行循环体内的语句,执行之后,j的值加1
            printf("%d ", j);  //输出j的值
        }
        printf("\n");  //执行完内层的循环之后,输出一次回车
    }
    return 0;
}

这里,具体需要大家在习题中感受领悟。

十、go to 语句

C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。

#include <stdio.h>
int main()
{
  printf("hehe\n");
 goto next:
  printf("haha\n");
next:
  printf("跳过了haha的打印\n"); 
  return 0;
}

go to 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以小编的建议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出使⽤ goto 就⾮常的⽅便了。

总结

从本节开始,知识难度增加啦。开始更加考验大家逻辑思维能力了,想要提高思维,就需要多刷题,想要熟练掌握语法,依然需要多刷题。

选择结构程序设计

循环结构程序设计


目录
相关文章
|
22天前
|
安全 C语言
C语言循环的使用注意点
在C语言中,合理使用循环对于编写高效、安全的代码至关重要。以下是几点建议:确保循环条件正确以避免无限循环;每次迭代时正确更新循环变量;恰当使用`break`和`continue`控制执行流程;注意嵌套循环中的变量作用域;简化循环体内逻辑;根据需求选择合适的循环类型;注意数据类型以避免溢出;保持良好的缩进和注释习惯;减少重复计算以提升性能;确保循环终止条件明确。遵循这些建议,可以提高代码质量和可维护性。
186 88
|
3月前
|
C语言
【C语言】循环语句
C语言中循环语句的相关知识点
35 2
【C语言】循环语句
|
23天前
|
C语言
【C语言基础考研向】08判断语句与循环语句
本文介绍了C语言中的关键编程概念:首先解析了关系表达式与逻辑表达式的优先级及计算过程;接着详细说明了`if-else`语句的使用方法及其多分支和嵌套应用;然后讲解了`while`循环与`for`循环的语法和注意事项;最后介绍了`continue`和`break`语句在控制循环中的作用和示例代码。
|
26天前
|
存储 算法 C语言
C语言手撕实战代码_循环单链表和循环双链表
本文档详细介绍了用C语言实现循环单链表和循环双链表的相关算法。包括循环单链表的建立、逆转、左移、拆分及合并等操作;以及双链表的建立、遍历、排序和循环双链表的重组。通过具体示例和代码片段,展示了每种算法的实现思路与步骤,帮助读者深入理解并掌握这些数据结构的基本操作方法。
|
2月前
|
C语言
【C语言篇】分支语句详解(超详细)
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。
|
2月前
|
机器学习/深度学习 C语言
【C语言篇】循环语句详解(超详细)
while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳出循环.
|
2月前
|
C语言
C语言的循环语句
C语言的循环语句
49 6
|
2月前
|
C语言
C语言分支语句
C语言分支语句
24 4
|
2月前
|
编译器 C语言
C语言函数的学习
掌握函数的使用是学习C语言的关键一环,理解和应用这些基本的函数概念将使你能够更有效地利用C语言的强大功能。
18 0
|
4月前
|
存储 编译器 C语言
c语言学习历程【1】
c语言学习历程【1】
54 1