浅谈C语言分支和循环语句

 Hello! 友友们,大家好呀! 我是竹烟。 

今天呢,我想分享一些有关C语言中分支和循环语句的知识。

1. 引言

C语言支持3种结构,即顺序结构选择结构循环结构。要想实现选择结构,我们就可以用分支(选择)语句,要想实现循环结构,我们就可以用循环语句

2. 两种常见分支语句

2.1 if语句

2.1.1 if

if语句中,首先判断表达式是否成立,表达式成立则为真(非0),执行语句,表达式不成立则为假(0),不执行语句。

if(表达式) 
   语句;
 

2.1.2 if...else...

if(表达式)
   语句1;
else
   语句2;

(注: if语句只能控制一条语句,想要同时控制多条语句,就要用{}将代码括起来)

2.1.3 嵌套if

在if...else...语句中,else可以于另一个if语句连用,构成多重判断。

例如:输入两个整数,判断两个数的大小关系(结果可以是=、>、<),我们可以用if..else if...else这样的语句。

#include <stdio.h>

int main() 
{
    int a, b;
    while (scanf("%d %d", &a, &b) != EOF) 
    {
        if (a == b)
            printf("%d=%d\n", a, b);
        else if (a > b)
            printf("%d>%d\n", a, b);
        else
            printf("%d<%d\n", a, b);
    }
    return 0;
}

有了嵌套if语句,我们就可以完成更多复杂的逻辑判断了。

2.2 switch语句

switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重的else if 改成更易用、可读性更好的形式。

 switch (表达式) 
{
 case value1:语句1
 case value2:语句2
 default:语句3
}

上面代码中,根据表达式 expression 不同的值,执行相应的 case 分支。如果找不到对应的值, 就执行 default 分支。

注: 

switch后的表达式必须是整型表达式。

case 后的值,必须是整形常量表达式。

如果没有符合条件的情况,那么执行default后的默认情况语句,default可以省略。

每⼀个case语句中的代码执行完成后,需要加上break,才能跳出这个switch语句。

例如:输入数字1~5打印“工作日”,输入6~7打印“休息日”,输入其他数字打印“输入错误,请输入1~7的数字”

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	default:
		printf("输入错误,请输入1~7的数字\n");
		break;
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	
	}
	return 0;
}

3. 循环语句

3.1 while循环

C语言提供了3种循环语句,while就是其中一种,while语句的语法结构和if语句非常相似。区别在于while语句是可以实现循环效果的。whlie首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下⼀次判断。

while(表达式)
      语句;

例如:在屏幕上打印1~10的值 

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

3.2 for循环

3.2.1 for循环语法形式

for 循环是三种循环中使用最多的。

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

表达式1:用于循环变量的初始化

表达式2:用于循环结束条件的判断

表达式3:用于循环变量的调整

3.2.2 for循环执行流程

首先执行表达式1初始化循环变量,接下来就是执行表达式2的判断部分,表达式2的结果如果为0,则循环结束;表达式2的结果如果不为0则执行循环语句,循环语句执行完后,再去执行表达式3 ,调整循环变量,然后再去表达式2的地方执行判断,表达式2 的结果是否为0,决定循环是否继续。 整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。

例如:在屏幕上打印1~10的值

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

3.3 do-while循环

在循环语句中do while语句的使用最少,它的语法如下:

do
 语句;
while(表达式);

while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳 出循环;而do while循环则是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下⼀次,表达式为假,则不再继续循环。所以在 do while 语句中循环体是至少执行⼀次的,这do while循环比较特殊的地方。

例如:在屏幕上打印1~10的值

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值