带你快速了解while循环 for循环 do while 循环中 break 和continue 的区别 【C 语言 】

在了解分支循环前我们得先知道什么是c语句我们现在学习的是控制语句

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

分支语句

if的具体用法

if (表达式)
语句;
if (表达式)
语句1;
else
语句2;
多分支
if (表达式1)
语句1;
else if (表达式2)
语句2;
else
语句3;
注意 else 里面不需要再去添加表达式了


上代码!

#include <stdio.h>
//代码1
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
}
//代码2
#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
    else
   {
        printf("成年\n");
   }
}
//代码3
#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("少年\n");
   }
    else if(age>=18 && age<30)
   {
        printf("青年\n");
   }
    else if(age>=30 && age<50)
   {
          printf("中年\n");
   }
    else if(age>=50 && age<80)
   {
        printf("老年\n");
   }
    else
   {
        printf("老寿星\n");
   }
    
}

悬空else

int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2)
            printf("hehe\n");
        else
            printf("haha\n");
    return 0;
}

else是与离else最近的if匹配 适当的加入{}可以保证自己的代码风格逻辑清晰能提高代码的可读性

switch 的具体用法

switch 常常用于多分支的情况取代if else if else … 的情况 switch的语法如下
switch(整型表达式)
{
语句项;
}


上代码!

#include <stdio.h>
int main()
{
    int n = 1;
    int m = 2;
    switch (n)
   {
    case 1:
            m++;
    case 2:
            n++;
    case 3:
            switch (n)
           {              //switch允许嵌套使用
             case 1:
                    n++;
             case 2:
                    m++;
                    n++;
                    break;
           }
    case 4:
            m++;
            break;
    default:
            break;
   }
    printf("m = %d, n = %d\n", m, n);
    return 0;
}

如果表达式的值和case标签的值都不匹配咋办? 就加default 子句

循环语句

do while 循环的具体用法

do while 的语法
do
循环语句;
while(表达式);
循环至少执行一次 ,使用场景有限 ,不经常使用

do while 循环中的break continue

上代码!

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

在这里插入图片描述


结果是1234 打印了1234 当 i == 5 时break 直接跳出循环
那如果把break 换成continue会出现和上面一样的情况吗?

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

在这里插入图片描述

结果是1234 死循环 当i==5时候continue 直接跳到do while 的判断部分 从而出现死循环

while循环的具体用法

break 、continue在while 循环的作用

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

在这里插入图片描述

while循环 中的break是用于永久终止循环的
其实循环中只要遇到break,就停止后期所有的循环,直接终止循环
那如果把break改成continue 会出现咋样的情况?

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

在这里插入图片描述

这里出现了死循环 continue跳过了本次循环后面的代码直接跳到了while循环的判断部分。进行下一次循环入口的判断

for循环的具体用法

for(表达式1; 表达式2; 表达式3)
循环语句;


表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。

break、continue 在for循环中的作用

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 0; i <= 10; i++)
	{
		if (5 == i)
		
			break;
		
		printf("%d", i);

    }
	return 0;
}

在这里插入图片描述

这里for循环中的break和while循环中的一样,终止循环。这次把break换成continue 会一样吗

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 0; i <= 10; i++)
	{
		if (5 == i)
		
			continue;
		
		printf("%d", i);

	}
	return 0;
}

在这里插入图片描述

这里continue 在for循环中就和while循环有区别了continue在for循环中跳到了循环的调整部分

for 和while的对比 while 和do while 的对比

现在我们来对比一下for循环和hwhile循环的优缺点

int i = 0;
//实现相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
 printf("hehe\n");
 i = i+1;//调整部分
}
//实现相同的功能,使用while
for(i=1; i<=10; i++)
{
 printf("hehe\n");
}

在循环中存在的三个必要条件 for 和while 都有 但是for 和while 的风格不一样 一旦发现问题 查找while
循环很不方便 所以我们更偏向与for 循环。 do while 循环先执行再判断 ,while先判断再执行,除此之外没有区别。


二分查找

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int left = 0;
	int right = 9;
	int k = 7; 
	int flag = 0; 
	while (left <= right)
	{
		int mid = (left + right) / 2;
		if (arr[mid] > k)
		{
			right = mid - 1;
		}
		else if (arr[mid] < k)
		{
			left = mid + 1;
		}
		else
		{
			printf("找到了下标是 :%d\n", mid);
				 flag = 1;
			break;
		}
	}
	if (flag == 0)
	{
		printf("找不到\n");
	}
  }

在这里插入图片描述

猜数字游戏


如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鄃鳕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值