初识C语言(分支和循环语句)

一、分支语句(选择结构)

什么是选择?

如果你想学技术知识,就多来CSDN看博客。

如果你不想学技术知识,可以去刷抖音鬼畜视频。

这就是选择

1. if语句

❤️分类
单分支:if语句

双分支:if-else语句

多分支:if-else if-else语句

上面这三种情况是走了一条就不会走另外一条路

如果是两个if,会有两次的选择机会
❤️注意
悬空else问题
else是和它离得最近的if匹配的

if的判断地方
如果要判断某一个变量是否等于一个常量值时,把常量值放在前面,避免把“==”写成了“=”

if的控制区域
if语句默认只能控制一条语句,如果要执行多条语句,应该使用代码块

2. switch 语句

❤️格式

switch(整型表达式)
{
        语句项;        是一些case语句
}

❤️case、break和default
【case】
case决定入口,可以合并让多个case执行同一条语句

case    整型常量表达式:
           语句;

【break】
在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。即break的实际效果是把语句列表划分为不同的分支部分

只能跳出本次switch,决定了出口

case后面没有规定一定要加上break,一切从题目要求出发。

【default】
使用场景:不想忽略不匹配所有标签的表达式的值

当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行,所以,每个switch语句中只能出现一条default子句

编程好习惯
在最后一个case语句的后面加上一条break语句(可以避免处在在)

二、循环语句

1. while 语句

同一件事我们要去做很多次,一个分支语句只能实现一次的效果,如果要执行多次,就需要使用循环

❤️格式

while(表达式)     如果表达式的内容为真,就执行下面的语句
          循环语句;

❤️while中的break
是永久终止循环,停止后期的所有的循环,直接终止循环
❤️while中的continue
终止本次循环(continue之后的语句不会执行,而是直接跳到while语句的判断部分。进行下一次循环的入口判断)

2. for 语句

❤️格式

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

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

❤️for语句的循环控制变量
不可在for循环体内修改循环变量,防止for循环失去控制

建议for语句的循环控制变量的取值拆开“前闭后开”的写法

//前闭后开
int i = 0;
for (i = 0; i < 10; i++)
{

}

//两边都是闭
for (i = 0; i <= 9; i++)
{

}

//C++写法,C99中引入
for (int i = 0; i < 10; i++)
{

}

❤️变种

  • 循环中表达式1,2,3是可以省略的。但省了会容易出现问题
int main()
{
    for (;;)
    {
        printf("hh\n");    
    }
    return 0;
}
  • 多重循环
int main()
{
    int i = 0;
    int j = 0;
    for (i = 0; i < 10; i++)
    {
        for (j = 0; j < 10; j++)
        {
            printf("hh\n");
        }
    }
    return 0;
}
  • 使用多余一个变量控制循环
int main()
{
    int x, y;
    for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
    {
        printf("hh\n");
    }
    return 0;
}

3.do-while语句

❤️格式

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

使用场景:循环至少执行一次
❤️do-while中的break
是永久终止循环,停止后期的所有的循环,直接终止循环
❤️do-while中的continue
跳转到表达式部分,进行是否开始下一次循环的判断

4.goto语句

使用场景:终止程序在某些深度的嵌套的结构,break只能跳出一层循环

缺点:会把代码搞得很乱,打乱应有的程序流程

注意:只能在同一个函数内部跳转,不能跨函数跳转

int main()
{
	char input[20] = {0};
again:
	printf("呵呵\n");
	scanf("%s", input);
	//判断
	if (strcmp(input, "别再呵呵了") == 0)
	{
		printf("哦\n");
	}
	else
	{
		goto again;
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值