文章目录
前言
各位伙伴你们好!通过前面介绍C语言的数据类型以及变量的使用之后。我们会把它和C语言中的各种结构语句相结合,从而构成各种C语言语句。接下来介绍C语言的各种结构语句吧!。👉👉👉
1. C语言结构分类
结构分类我用一张图来说明它的种类:🏃♀️🏃♀️🏃♀️
2. if 分支语句结构
分支语句可以分为单分支语句、多分支语句、嵌套使用。
2.1 if 单分支语句结构
if (表达式)
语句;该语句表达式为真才执行下面的语句,否则不执行。如果语句中的内容不止一句必须用大括号。
例1. 输入一个整数,判断是否为奇数?
#include<stdio.h>
int main()
{
//首先,题目需要一个整数并初始化,一般初始化为0,所以得定义一个变量来接收这个整数。
//因为说的是整数,因此为整型
int number = 0;
printf("请输入一个整数—>:\n");
scanf_s("%d",&number);//注意取地址符号别丢了。
//写入一个数后,立马判断是否奇数。
//判断奇数的条件是对2取余,看余数是否为1.
if (number % 2 == 1)
printf("%d是奇数!\n",number);
return 0;
}
2.2 if…else 语句结构
else表示否则的意思,当表达式部位真的时候会执行else 的语句。以上一个为例子。
2.3 if…else 嵌套使用
在 if……else 语句中,else 可以和另一个if 连用,构成多重判断。
- 嵌套使用
2.4 else悬空问题
【始终记住一句话,如果有多个 if 和 else ,else 总是和最接近的 if 匹配的。】
等价于下面,所以什么都没打印。
3. switch 语句结构
除了 if 语句之外,C语言还提供了一个分支语句—— switch。它是一种特殊形式的 if……else 语句,一般用于判断有多个结果的情况。基本语法格式如下👇👇👇:
3.1 基本语法格式
上面的代码中,是根据表达式expression不同的值,执行下面相应的 case 语句,如果没有对应的case 语句,就执行 default 语句。【注意:switch 后的expression 必须是整型表达式(表达式结果必须是整型);case 后的值必须是整型常量表达式;在case语句最后面记得加break;】
- 注意:
-
- case 和后边的数字之间必须有空格
-
- 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。
3.2 break语句作用
- 有break的代码输出内容:👇👇👇
3.3 switch语句中case和default语句的顺序问题
此问题很简单,就是他们之间没有任何顺序,随便放,但是为了让代码格式好看,一般把default语句放在最后的。
4. while 循环语句结构
while循环语句的基本格式:——》
- while(表达式) 语句;
- 当表达式的结果为0,即为假,就跳出循环,结束执行,若表达式为1,即为真,就继续执行while循环里面的语句。
4.1 例2、取出每个数的每一位?
对10取余——获取一个数的最低位;除以10——去除一个数的最低位。
5. for 循环语句结构
for循环语句基本语法, for循环语句是使用频率最高的,其基本格式如下:👇👇👇👇
for(exp1;exp2;exp3)
语句;
- exp1表达式:用于循环变量的初始化。
- exp2表达式:用于循环结束条件的判断。
- exp3表达式:用于循环变量的调整。
就是从初始化条件开始,与表达式2进行判断,若为真,就执行里面的语句,执行完以后,就进行调整;调整过后再一次进行比较判断,直到条件判断为假,就跳出循环,执行结束。【在整个循环中,表达式1语句,只执行1次,其他语句是根据条件判断做出循环】
5.1 练习:计算1~100之间3的倍数的数字之和
6. do……while 语句结构
do……while()循环语句基本语法:
do{
语句;
}while(表达式);
while()和for()循环,是先判断再执行,条件如果满足就进入循环语句,不满足就跳出循环。而do……while()循环是先直接进入循环体,执行循环语句,然后再执行while()里面的判断表达式,若为真,就进行下一次循环,若为假就不再继续循环。【do……while()循环至少会执行一次】
6.1 练习:计算一个整数是多少位数
7. break和continue语句结构
break和continue语句的作用地方:
用于循环语句当中,break:用于永久的终止循环,只要执行break就跳出循环。而continue语句作用是跳过本次循环continue后面的代码,在for循环和while循环中有所差异。
【注意:🧨🧨🧨遇到break和continue语句的时候,必须注意变量调整的位置和条件判断,很有可能存在死循环】。下面就是出现是循环了。
8. goto语句结构
goto语句是C语言一种特殊语法,它是用于多层循环的结构,可以快速的跳出整个循环。【一般goto语句不要乱用,以免让代码层次乱套】
8.1 一个有意思的关机程序
9. 综合练习《猜数字游戏》
写一个随机生成1~100之间的数字,让玩家去猜大小,当猜数字猜大了或者小了会给出提示,让玩家重新猜数字,知道猜对为止。【会用到随机函数rand()和时间戳函数srand()】,代码如下:
//猜数字游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game()
{
int number = 0;//要输入猜想的数据值
int number1 = 0;//电脑随机数
number1 = rand() % 101;
while (1)
{
printf("请输入猜想的数字—>:\n");
scanf_s("%d", &number);
if (number > number1)
printf("猜大了!\n");
else if (number < number1)
printf("猜小了!\n");
else
{
printf("恭喜你,猜对了!!!\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;//选择功能
printf("**************************\n");
printf("****欢迎来到猜数字游戏****\n");
printf("**************************\n");
printf("***** 1—> play *****\n");
printf("***** 0—> exit *****\n");
printf("**************************\n");
printf("请选择—>:\n");
scanf_s("%d",&input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("欢迎下次玩耍!\n");
break;
}
return 0;
}
10. 随机函数的使用
【记住这几个点就可以了:1、使用之前包含头文件#include<stdlib.h>和#include<time.h>;2、在主函数里面第一行写时间戳函数srand((unsigned int)time(NULL));3、在使用rand()函数时候,范围定义就是看自己需要多大的范围,这个随机函数的范围是0 — RAND_MAX,最大值依赖编译器,一般是32767;比如生成0~100之间的数,就把rand()%100+1或者rand()%101;表示[0,100],如果写成rand()%100就表示[0,100),左闭区间右开区间,取不到100】
- 【以上是这篇博客所有内容。】