【C语言基础】分支和循环初步理解

22 篇文章 15 订阅

目录

一、分支

1.代码结构

2.分支结构 - if语句

3.分支结构 - Switch语句 

二、循环 

1.while循环

2.for循环

3.do...while()循环


分支和循环

一、分支

  • if语句
  • swithc语句

1.代码结构

  • 循环语句
  • 选择语句
  • 顺序语句

2.分支结构 - if语句

(1)if语句-单分支

说明:要么执行,要么不执行,当表达式成立的之后,则执行语句;如果表达式不成立,则直接跳过整个if语句继续执行后面的代码

语法结构:

if(表达式)

        执行语句;

练习:

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if(age<18)
    {
        printf("未成年\n");
    }
    return 0;
}

注:表达式必须为真才执行语句

(2)if语句-双分支

说明:如果表达式成立,则执行语句1;如果不成立,则执行语句2

语法结构:

if(表达式1)

        执行语句1;

else

        执行语句2;

练习:

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if(age<18)
    {
        printf("未成年\n");
    }
    else
    {
        printf("成年\n");
    }
    return 0;
}

(3)if语句-多分支

说明:实现了多选一的操作,会根据不同的条件从上往下来进行匹配,如果匹配上了,则执行对应的语句,然后直接结束整个if-elif语句,但是,如果所有的条件都不成立的话,则执行else后面的语句

语法结构:

if(表达式1)

        执行语句1;

else if(表达式2)

        执行语句2;

else

        执行语句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");
    }

    return 0;
}

注:不管if-elif-else有多少个分支,都只会执行其中的一个分支

(4)嵌套if语句

说明:说明:if语句的嵌套,可以在单分支,双分支,多分支之间进行任意组合

语法结构:
if(表达式1)

        执行语句1;

if(表达式2)

        执行语句2;

注:从语法角度来说,嵌套的层数没有任何的限制,但是,为了代码的可读性和可维护性,嵌套层数不要超过3层

3.分支结构 - Switch语句 

语法结构:

swtich(整型表达式)

{

        语句项;

}

语句项:case 语句

case 整型常量表达式;

        执行语句;

练习: 

#include <stdio.h>
int main()
{
    int day = 0;
    switch(day)
   {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
   }
    return 0;
}

编程好习惯

在每个 switch 语句中都放一条 default 子句是个好习惯,甚至可以在后边再加一个 break 。 

例题:

#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;
}

二、循环 

  • while循环
  • for循环
  • do while循环

1.while循环

while语法结构:
while (条件表达式)
        循环语句;

 练习:

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

while语句中的break和continue 

break:

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

 总结: breakwhile 循环中的作用:

其实在循环中只要遇到 break,就停止后期的所有循环,直接中止循环。所以:while 中的 break 是用于永久终止循环的

continue: 

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

 总结: continue 在 while 循环中的作用就是:

continue 是用于终止本次循环的,也就是本次循环中 continue 后边的代码不会再执行,而是直接 跳转到 while 语句的判断部分。进行下一次循环的入口判断。

2.for循环

for语法结构:

for(表达式1;表达式2;表达式3)

        循环语句;

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

练习:

#include <stdio.h>
int main()
{
	int i = 0;
	//for(i=1 - 初始化; i<=10 - 判断部分;i++ - 调整部分)
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}
	return 0;
}

for语句中的break和continue  

break:

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

continue:

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

 for语句的循环控制变量

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

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

int i = 0;
//前闭后开的写法
for(i=0; i<10; i++)
{}
//两边都是闭区间
for(i=0; i<=9; i++)
{}

3.do...while()循环

do语句的语法结构:

do

        循环语句;

while(表达式);

练习:

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

do while循环中的break和continue

break:

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

continue:

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

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

  • 40
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HyDraZya

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

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

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

打赏作者

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

抵扣说明:

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

余额充值