深入浅出循环语句—【C语言】

简介: 深入浅出循环语句—【C语言】

前言:我们先来了解一下break 、continue在循环中的作用

break:终止循环(暴力)

continue:跳过本次循环continue后面的代码,再循环(温柔)


1. while循环

当条件满足的情况下,if语句后的语句执行,否则不执行。 但是这个语句只会执行一次。 由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。 那我们怎么做呢? C语言中给我们引入了: while 语句,可以实现循环。



while循环中的break

当n=5时,if语句为真,执行break语句,break在while循环中跳出的是整个循环,如果有多组循环嵌套,跳出的是内层循环(跳出一组循环)


while循环中的continue

当n=5的时候,执行continue语句,跳过continue后面的代码,开始下次循环



2. for循环

表达式1 初始化部分,用于初始化循环变量的。

表达式2 条件判断部分,用于判断循环时候终止。

表达式3 调整部分,用于循环条件的调整。



for循环省略出错举例:


这里是两个for循环嵌套,开始时i=0,j=0,进入内部for循环,循环4次出内层循环,这是j=4,再当i=1,再次进入内层for循环的时候,这是由于j没有初始化部分,所以j还是为4,直接跳出内层for循环~~~本来打印16个hehe,现在只打印4个

for循环中的break


当i=5时,执行break代码,直接跳出for循环


for循环中的continue

当i=5时,执行continue代码——跳出本次循环continue后面的代码,直接到调整部分—>再到for循环判断部分


for循环使用建议


1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。


2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。


3. do   while循环

循环至少执行一次,使用的场景有限,所以不是经常使用。


利用do while循环打印1~10

do  while循环中的break

break直接跳出循环


do  while循环中的continue

continue跳过本次循环后面的代码,由于这里跳过了调整部分,i=5一直为真,一直执行continue,就打印出1234 死循环



4. 练习

4.1 计算 n的阶乘

int main()
{
  int n = 0;
  scanf("%d", &n);
  int ret = 1;    //注意ret不能定义为0
  for (int i = 1; i <=n ; i++)
  {
    ret *= i;
  }
  printf("%d", ret);
  return 0;
}


4.2 计算1!+2!+3!+……+10!

int main()
{
  int ret = 1;
  int sum = 0;
  for (int i = 0; i <=10 ; i++)
  {
    ret *= i;
    sum += ret;//sum=sum + ret;也可以这样来看
  }
  printf("%d", sum);
  return 0;
}


5. 实现二分(折半)查找算法

二分查找算法使用的前提是数组元素有序(升序)、(降序)

5.1 思路分析

1.确定被查找范围的左右下标left、right

2.根据left和right,确定中间元素下标mid

3.根据mid锁定的元素,和要查找的元素进行比较,确定新的元素范围left和right



5.2 二分查找代码实现

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
  int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//升序
  //printf("%d\n", sizeof(arr));//计算的数组的总大小,单位是字节
  //printf("%d\n", sizeof(arr[0]));//4
  //printf("%d\n", sizeof(arr) / sizeof(arr[0]));
  int k = 7;
  int i = 0;
  int sz = sizeof(arr) / sizeof(arr[0]);
  //1
  int left = 0;
  int right = sz - 1;
  int flag = 0;//flag的作用是标志是否找到了
  //2
  while (left <= right)
  {
    int mid = (left + right) / 2;
    if (arr[mid] == k)
    {
      printf("找到了,下标是:%d\n", mid);
      flag = 1;
      break;
    }
    else if (arr[mid] < k)
    {
      left = mid + 1;
    }
    else
    {
      right = mid - 1;
    }
  }
  //1 2
  if (flag == 0)
    printf("没找到\n");
  return 0;
}

运行结果

如果觉得文章不错,期待你的一键三连哦,你个鼓励是我创作的动力之源,让我们一起加油,顶峰相见!!!

相关文章
|
17天前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
61 5
|
3月前
|
C语言
【C语言】循环语句
C语言中循环语句的相关知识点
42 2
【C语言】循环语句
|
1月前
|
安全 C语言
C语言循环的使用注意点
在C语言中,合理使用循环对于编写高效、安全的代码至关重要。以下是几点建议:确保循环条件正确以避免无限循环;每次迭代时正确更新循环变量;恰当使用`break`和`continue`控制执行流程;注意嵌套循环中的变量作用域;简化循环体内逻辑;根据需求选择合适的循环类型;注意数据类型以避免溢出;保持良好的缩进和注释习惯;减少重复计算以提升性能;确保循环终止条件明确。遵循这些建议,可以提高代码质量和可维护性。
194 88
|
18小时前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
18 5
|
17天前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
19天前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
10天前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
13 0
|
11天前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
1月前
|
C语言
【C语言基础考研向】08判断语句与循环语句
本文介绍了C语言中的关键编程概念:首先解析了关系表达式与逻辑表达式的优先级及计算过程;接着详细说明了`if-else`语句的使用方法及其多分支和嵌套应用;然后讲解了`while`循环与`for`循环的语法和注意事项;最后介绍了`continue`和`break`语句在控制循环中的作用和示例代码。
|
19天前
|
编译器 C语言 C++
【C语言】循环语句(语句使用建议)
【C语言】循环语句(语句使用建议)