C语言分支和循环

分支语句

1.if语句

1.1 单分支if语句

if (表达式)
语句;

表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。
在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果是不是0,则语句执行。
例⼦:输⼊⼀个整数,判断是否为奇数

#include <stdio.h>
int main()
{ 
    int num = 0;
    scanf("%d", &num);
    if (num % 2 == 1)
        printf("%d 是奇数\n", num);
    return 0;
}

1.2 双分支if语句

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

如果我们要if语句同时控制2条语句,就需要使用{}将代码括起来,
例子:输⼊⼀个年龄,>= 18岁就输出:成年 可以谈恋爱。否则就输出:未成年 不可以谈恋爱

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if(age >= 18) //if 后使⽤{}控制多条语句-这个块也叫:程序块,或者复合语句
    {
        printf("成年\n");
        printf("可以谈恋爱\n");
    }
    else
    {
        printf("未成年\n");
        printf("不可以谈恋爱\n");
    return 0;
}

1.3 if语句的嵌套

在 if else 语句中, else 可以与另⼀个 if 语句连用,构成多重判断。
如果有多个 if 和 else ,可以记住这样一条规则, else 总是跟最接近的 if 匹配。
例子:输⼊一个人的年龄;如果年龄<18岁,打印"少年";如果年龄在18岁⾄44岁打印"青年";如果年龄在45岁至59岁打印"中老年";如果年龄在60岁⾄89岁打印"老年";如果90岁以上打印"老寿星“。

#include <stdio.h>
int main()
{
 	int age = 0;
 	scanf("%d", &age);
 	if(age<18)
 	{
 		printf("少年\n");
 	}
 	else
 	{
 		if(age<=44)
 		{
 			printf("⻘年\n");
 		}
		else
		{
			if(age<=59)
 			{
 	    		printf("中⽼年\n");
 			}
 			else
 			{
 				if(age<=90)
 				{	
 					printf("⽼年\n");
 				}
 				else
 				{
 					printf("⽼寿星\n");
 				}
 			}
 		}
 	}
 	return 0;
}

1.4 多分支if语句

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

else if (表达式n-1)
语句n-1;
else
语句n;

例子:输入一个字符,若该字符为小写字母,则将其转化为大写字母;若该字符为大写字母,则将其转化为小写字母;否则转化为ASCII码表中该字符的下一个字符。

#include <stdio.h>
int main()
{
	char a, b;
	printf("请输入一个字符:");
	a = getchar();
	if (a >= 'a' && a <= 'z')
	{
		b = a - 32;
	}
	else if (a >= 'A' && a <= 'Z')
	{
		b = a + 32;
	}
	else
	{
		b = a + 1;
	}
	putchar(b);
	return 0;
}

2.switch语句

switch (表达式)
{
case 常量表达式1: 语句1; break;
case 常量表达式2: 语句2; break;

case 常量表达式n: 语句n; break;
default : 语句n+1; break;
}

switch 语句是⼀种特殊形式的 if…else 结构,用于判断条件有多个结果的情况。它把多重的 else if 改成更易用、可读性更好的形式。
(1)switch后的表达式可以是任何表达式,其值只能为整型、字符型、枚举型之一。
(2)每个case后面的常量表达式的值互不相同,否则就会出现互相矛盾的现象。
(3)各个case和default的出现次序不影响执行结果。
(4)可以让多个case共用一组执行语句。
(5)switch语句允许嵌套。
例子:输⼊⼀个1~7的数字,打印对应的星期几。输⼊:1 ;输出:星期⼀;输⼊:2 ;输出:星期⼆;输⼊:3 ;输出:星期三;输⼊:4; 输出:星期四;输⼊:5 ;输出:星期五;输⼊:6 ;输出:星期六;输⼊:7 ;输出:星期天。

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期⼀\n");
		break;
	case 2:
		printf("星期⼆\n");
		break;
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	}
	return 0;
}

循环执行语句

1.while语句

while (表达式)
循环体;

首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。
例子:在屏幕上打印 1~10 的值

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

2.for语句

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

表达式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.do while语句

do
循环体;
while (表达式);

do while 循环先直接进入循环体,执行循环语句,然后再执行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、付费专栏及课程。

余额充值