·分支语句
1.if
2.switch
·循环语句
1.while
2.for
3.do while
·goto语句
1.什么是语句
C语言中由一个分号;隔开的就是一条语句。
2.分支语句(选择结构)
好好学习,找到好工作,
不好好学习,回家种地,
好好学习和不好好学习就是两种选择。
3.If语句
语法结构:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
例子如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
return 0;
}
如果表达式的结果为真,则语句执行。
0表示假,非0表示真。如果语句有两条以上,需要用大括号括起来。
4.switch 语句
格式:
switch(整形表达式)
{
语句项;
}
#include<stdio.h>
int main()
{
int day = 0;
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");
case 7:
printf("星期日\n");
break;
}
return 0;
}
在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。
如上述代码,break语句实际效果是把语句列表划分为不同的部分。
default子句
如果表达式与所有的case 语句都不匹配
这是需要default 语句,他可以出现在case标签的任意一个位置,每个switch语句只能出现一条default语句。
5,循环语句
1.while 循环
当条件成立,if语句执行,但表达式语句只能执行一次,但我们需要同一件事很多次完成,这是需要while。
语法结构:
while(表达式)
循环语句;
2.for循环
语法:
for(表达式1;表达式2;表达式3)
循环语句;
表达式1为初始化部分,用于初始循环变量。表达式2为条件判断部分,判断循环啥时候结束。表达式3为调整部分,用于循环条件的调整。实则while 循环中也存在这三个部分,但由于风格问题使得三个部分很可能偏离较远,这样查找修改不够集中和方便,所以这时用for更为合理。
break和continue
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
由上述可知,break就是停止后期所有的循环,直接从循环中跳出来
而continue是用于终止本次循环的,也就是本次循环中continue后面的代码不会执行,而是直接跳转到循环判断部分,准备下一次循环。
3.do…while()循环
语法:
do
循环语句;
while(表达式);
他的特点就是,不管他满不满足循环判断条件,他至少执行一次。
4.goto语句
C语言中提供了可以随意滥用的goto语句和标记跳转的标号,但一般我们不建议使用,这样可能会使我们的代码变得杂乱无章。
下面是一个猜数字游戏我们可以看看:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*********************\n");
printf("**** 1.play *********\n");
printf("**** 0.exit *********\n");
printf("*********************\n");
}
void game()
{
int input;
int x = rand() % 100 + 1;//生成一个随机数,范围在1-100之间
while (1)
{
printf("请输入数字:\n");
scanf("%d", &input);
if (input > x)
printf("猜大了\n");
else if (input < x)
printf("猜小了\n");
else
{
printf("猜中了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned)time(NULL));//时间戳,随着时间不断变化
do
{
menu();
printf("请选择:\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("请重新输入\n");
break;
}
} while (input);
return 0;
}