一、分支语句
1. if 家族
1.1 if语句的语法形式
if语句非常简单,其语法形式如下:
if ()表达式
语句;
多个语句用{ }括起来,其中表达式为真的时候语句执行,为假的时候语句不执行。
这是0为假,非0为真,当然根据我的实践,这里就算是你的表达式结果恰好为0,那也是假的,语句将不执行比如:
if(n % 2)
printf("%d是奇数\n" ,n);
1.2 else 语句
上面单个的 if 语句还不能看作是分支结构,充其量就是一个条件语句,要想获得真正的分支结构,就得引入else语句配合着 if 语句使用, 其语法形式如下:
if (表达式)
语句;
else
语句;
这里用样的,如果是多个语句,也要用{ }括起来
else语句通俗点说就是当不满足上面 if 执行的条件时 ,else下面的语句才会被执行,例如:
if(n % 2)
printf("%d是奇数\n" ,n);
else
printf("%d是偶数\n" ,n);
1.3 else if 语句
那如果我想要的分支有很多种情况而非只有两种情况怎么办呢?if 家族还有else if 语句,其语法形式如下:
if (表达式1)
语句;
else if (表达式2)
语句;
else if (表达式3)
语句;
else
语句;
同样的,只有当表达式为真的时候,所对应的语句才会执行,举个栗子:
if (age < 3)
printg("婴儿\n");
else if (age > 3 && age < 12)
printg("儿童\n");
else if (age > 12 && age < 18)
printg("青年\n");
else if (age > 18 && age < 60)
printg("成年\n");
else if (age > 60 && age < 80)
printg("老年\n");
else if (age > 80)
printg("老寿星\n");
以上就是 if 家族的用法,下面是一个技巧
众所周知,在C语言中 = 为赋值符,而 == 才是相等符,因此我们的 if 语句判断的表达式中不能吧赋值符当成相等的意思来使用,在VS2022 中,如果你错把赋值符当成相等的意思来用,编译不会报错,因为赋值成功 所以 if 下面的语句正常执行,例如:
if ( a = 5 )
语句;
这里不会报错!因为成功的把5赋值给了a,所以语句会被执行
正确的应该是这样的:
if ( a == 5 )
语句;
所以为了避免我们错用了赋值符而不知道,所以老司机一般这样写:
if ( 5 == a )
语句;
把常量放在前面。就算真的错用了辅助符,编译器也会报错的
2、switch 语句
2.1 switch语法形式:
switch(表达式)
{
case 常量1 :语句;
case 常量2 :语句;
case 常量n :语句;
default:语句;
}
注意:switch后的表达式必须为整型表达式!!!字符类型也可以,因为字符类型也属于整型家族(ASCII表),而case后面的常量也必须为整型(必须是常量)
举个例子:
switch (day) //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("输入错误:请输入 1 到 7 之间的数字。\n");
break;
}
想必大家都发现了break吧,为什么每个case后边都要添加break呢?
在switch家族中,语句的执行是从第一个符合条件的case开始执行的,而那一个符合条件的case语句后面所有的case语句都会被执行,那怎么办呢,那就添加break语句,跳出这个分支结构,注意:用不用break取决于具体情况,并不是每一个case后面都要添加break!
2.2 其他:
default与case没有先后顺序
default是一个case也没有被触发时才会被执行的
二、循环语句
告别重复,解放双手
循环结构是编程中不可或缺的一部分,它允许我们重复执行一段代码,从而避免编写大量重复的语句。在C语言中,循环结构主要有三种: for 循环、 while 循环和 do while 循环。
1. for 循环:固定次数的利器
1.1 for 循环语法结构:
for (初始化;条件;调整)
{
语句;
}
初始化 :在循环开始前执行一次,通常用于初始化循环变量。
条件 :每次循环开始前都会判断条件是否为真。如果为真,则执行循环体;如果为假,则退出循环。
调整:每次循环体执行完毕后,循环变量进行调整
示例:
#include <stdio.h>
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("%d ", i);
}
return 0;
}
这段代码会打印出 数字1~9
1.2 for 循环注意事项
* for 循环的三个部分都可以省略,但分号不能省略。例如 for (;;) 表示一个无限循环。
* 可以在初始化部分声明循环变量,例如 for (int i = 0; i < 10; i++) ,但这种声明方式的作用域只在 for 循环内部。
* 注意循环条件的判断,避免出现无限循环。
2. while 循环:条件为王的循环
while 循环在每次循环开始前判断条件是否为真,如果为真,则执行循环体;如果为假,则退出循环。
2.1 while 循环的基本语法结构
while (表达式)
语句;
int i = 0;
while (i < 10)
{
printf("%d ", i);
i++; // 必须要有更新语句,否则会陷入无限循环
}
这段代码会打印出 数字1~9
2.2 while 注意事项:
(1)while 循环需要手动初始化循环变量,并在循环体内更新循环变量的值,否则容易陷入无限循环。
(2)while 循环适用于循环次数不确定的情况,只要条件满足,循环就会一直执行。
3. do while 循环:至少执行一次的循环
do while 循环先执行循环体,然后再判断条件是否为真。如果为真,则继续执行循环;如果为假,则退出循环。这意味着 do while 循环至少会执行一次。
3.1 do while 的基本语法形式
do
语句;
while(表达式);
举个栗子:
do
{
printf("%d ", i);
i++;
} while (i < 10);
这段代码会打印出 数字1~9
3.2 do while 注意事项
(1)do while 循环的循环体至少会执行一次。 (2)do while 循环需要在循环体内更新循环变量的值,否则容易陷入无限循环。
(3)do while 循环的结尾需要加上分号。
4. 循环控制语句:break 和 continue
C语言提供了 break 和 continue 语句来更灵活地控制循环的执行。
break 语句:用于立即退出当前循环。
continue 语句:用于跳过当前循环的剩余部分,直接进入下一次循环。
break 语句只会退出当前循环,如果循环嵌套,只会退出最内层的循环。
练习题:
1. 使用循环结构计算 1 到 100 的和。
2. 使用循环结构打印一个九九乘法表。
3. 使用循环结构判断一个数是否为素数。
希望这篇博客文章对您有所帮助!如果您需要更详细的解释或有其他问题,请随时提出。
1363

被折叠的 条评论
为什么被折叠?



