分支和循环语句

分支语言和循环语句

分支语句

  • if
  • switch

循环语句

  • while
  • for
  • do while

goto语句

什么是语句?

C语言由一个分号;隔开的就是一条语句

C语言如何表示真假

0表示假,非0表示真

if语句

//语法结构
if(表达式)
    语句;

if(表达式)
    语句1;
else
    语句2// 多分支
if(表达式1)
    语句1;
else if(表达式2)
    语句2else
    语句3;     

如要执行多条语句
#include<stdio.h>
int main()
{
if(表达式)
{
语句列表1;
}
else
{
语句列表2;
}
return 0;
}

int main()
{
	int age = 20;
	if (age >= 18)
		printf("成年\n");
	else
	{
		printf("未成年\n");
		printf("不能按恋爱\n");
	}
	/*if (age >= 18)
		printf("成年\n");*/

		return 0;
}

多分支语句

int main()
{
	int age = 60;
	if (age < 18)
		printf("少年\n");
	else if (age >= 18 && age < 26)
		printf("青年\n");
	else if (age >= 26 && age < 40)
		printf("中年\n");
	else if (age >= 40 && age < 60)
		printf("壮年\n");
	else if (age >= 60 && age <= 100)
		printf("老年\n");
	else
		printf("老不死\n");
	return 0;
}

判断是否为奇数

int main()
{
	int num = 15;
	if (num & 2 == 1)
		printf("奇数\n");

	return 0;
}

判断1-100之间的奇数

int main()
{
	int i = 0;
	for (i = 1; i <= 100; i++)
	{
		if (i %2 == 1)
		printf("%d",i);
	}
	return 0;
}

switch语句

switch(整型表达式)
{
语句项;
}
在switch语句中的break,搭配break使用才能实现真正的分支

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;
	default:
		printf("输入错误/n");
		break;
	}

	return 0;
}

while 语句

while 语句执行流程:
在这里插入图片描述打印1-10

int main()
{
	int i = 1;
	while (i <= 10)
	{

		printf("%d",i);
		i++;
	}
	return 0;
}

在while 循环中,break用于永久的终止循环

int main()
{
	int i = 1;
	//在while 循环中,break用于永久的终止循环
	while (i <= 10)
	{
		if (i == 5)
			break;
		printf("%d",i);
		i++;
	}
	return 0;
}

在while 循环中,continue的作用是跳过本次循环continue后边的代码,直接去判断部分,看是否执行下一次循环

int main()
{
	int i = 1;
	//在while 循环中,continue的作用是跳过本次循环continue后边的代码,直接去判断部分,看是否执行下一次循环

	while (i <=10)
	{
		if (i == 5)
			continue;
		printf("%d", i);
		i++;

	}

输入密码,确认密码

#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	char password[20] = { 0 };
	printf("请输入密码:>");
	scanf("%s", password);
	printf("请确认密码(Y/N):>");
	//清理缓冲区
	//getchar();//处理\n
	//清理缓冲区的多个字符
	int tmp = 0;
	while((tmp = getchar()) != '\n')
	{
	;
     }
	int ch = getchar();
	if (ch == 'Y')
	{
		printf("确认成功\n");
	}
	else {
		printf("确认失败\n");
	}
	return 0;
}

getchar scanf 输入函数---->缓冲区----->键盘
只会打印数字

int main() 
{
	int ch = 0;
	while ((ch = getchar()) != EOF)
	{
		if (ch < '0' || ch>'9')
			continue;
		putchar(ch);
	}
	return 0;
}

for循环

语法:
for(表达式1:表达式2:表达式3)
循环语句;
表达式1:初始化部分
表达式2:条件判断部分
表达式3:调整部分

int main()
{
	int i = 0;
	for (i = 1; i < 10; i++);
	{
		printf("%d", i);
	}
	return 0;
}

执行流程
在这里插入图片描述break和continue在for循环中

int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		/*if (i == 5)
			break;*/
		if (i == 5)
			continue;//跳过5

		printf("%d", i);
	}
	return 0;
}

for语句的循环控制变量
一些建议:

  1. 不可在for循环修改循环变量,防止 for循环失去控制
  2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法
int main()
{
	int arr[10] = { 0 };
	int i = 0;
	for (i = 0; i <10; i++)
	{
		printf("%d", arr[i]);
	}
	return 0;
}

一些for循环的变种
变种1

for(;;)
{
printf("hehe\n");
}

变种2

int x,y;
for(X=0,y=0;x<2&&y<5;++x,y++)
{
printf("hehe/n");
}
return 0;
}

省略

int main()
{
	int i = 0;
	int j = 0;
	for (; i < 3; i++)
	{
		for (; j < 3; j++)
		{
			printf("hehe/n");
		}
	}
 }
 return 0;

只打印三次hehe

do…while()循环

do语句的语法:

do
   循环语句;
while(表达式)

do语句特点
循环至少执行一次,使用场景有限,所有不是经常使用

int main()
{
	int  i = 1;
	do
	{
		printf("%d", i);
		i++;
	} while (i <= 10);
		return 0;
}

执行流程
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值