c语言是结构化的程序设计语言,c语言中有顺序结构,循环结构,选择结构。那怎么在c
语言中实现这几种结构的呢?下面就让我带你了解一下。
一,分支结构
1.if语句的介绍
在生活中我们为了完成一件事,会选择不同的方式来完成,在c语言程序中也不例外。
(1)为了在c语言中实现选择结构我们会使用到if语句。
if语句的语法结构如下
if(表达式)
语句
利用这个if语句就能实现选择,语句中的表达式是为判断条件,如果该表达式结果为真,则会运行if所控制的代码。如果表达式为假,则不运行if控制的代码。
例子:
#include<stdio.h>
int main()
{
int a=1;
if(a)
printf("%d",a);
return 0;
}
代码中a=1,1是非0表示为真,则会执行if控制的这条语句,如果将a的值改成0的话,则判断为假,就不执行if控制的语句。
注意:if只能控制一条语句,如果想要控制多条语句这时候就要使用{}来把多条语句括起来。
代码如下
if(表达式)
{
语句1;
语句2;
....
}
(2)else
当我们在写程序的时候判断一个数,不是奇数就是偶数,那这时候就要使用if.......else语句了
if(表达式)
语句1;
else
语句2;
这是if..... else的语法形式
例子:判断一个数的奇偶性
#include<stdio.h>
int main()
{
int num=0;
scanf("%d",&num);
if(num%2==0)
printf("该数为偶数");
else
printf("该数为奇数");
return 0;
}
这时候你输入一个数字,程序就会判断奇偶性。如果是偶则打印偶数,如果是奇数则打印奇数。
(3)if语句的嵌套
当我们使用if else两个选择不能满足多个选择需求时候,我们就可以使用else if这个语句
else if(表达句)
{
语句
}
我们可以使用多个elseif语句来实现多个选择
if()
语句
else if()
语句0;
else if()
语句1;
else if()
语句2;
else if()
语句3;
我们还能实现在if里面再实现选择结构,称为嵌套
if ()
{
if ()
{
语句;
}
else
语句;
}
利用if嵌套实现复杂的逻辑判断
比如说年龄的判断
int main()
{
int age = 0;
printf("请输入你的年龄: ");
scanf("%d", &age);
if (age < 18)
printf("少年");
else if (age >= 18 && age < 44)
{
printf("青年");
}
else if (age >= 44 && age < 59)
printf("中年");
else if (age >= 59 && age < 89)
printf("老年");
return 0;
}
注意:else悬空的问题,else总是和它最近的if匹配
(3)关系操作符
<:大于运算符 <=大于等于运算符
>:小于运算符 >=小于等于运算符
== 相等运算符
!=不相等运算符
这些关系运算符运用在表达式上则为
a<b等,这些关系表达式返回值一般为0或1,表示假或真。
注意:易出现的错误,把相等运算符用成了一个=,这时候就不是判断而是赋值了。
关系运算符也不能连用,如果要表示一个数大于一个数且小于另一个数
这时候就要使用 并且 &&
i<j && i>a
这时候返回值为
a为真 | a为假 | |
b为真 | 真 | 假 |
b为假 | 假 | 假 |
所以当&&两边表达式都为真的时候才会返回值为真
逻辑运算符 ||
||表示或者,当我们写一个判断季节的程序的时候,就会出现冬季的时候,是12月到1月份,这时候就很难将他们放到一个范围内,这时候就要使用||逻辑操作符了,表示或者,如下列代码
#include<stdio.h>
int main()
{
int month = 0;
sacnf("%d",&month);
if(month==11 || month==12 || month==1 || month==2)
printf("冬天");
retrun 0;
{
还有一个常见的逻辑操作符
逻辑取反操作符:!
这个操作符可以改变单个表达式的真假
条件操作符
格式为
表达式1 ? 表达式2 :表达式3
当表达式1为真的时候执行表达式2,表达式3不执行。同理当表达式1为假的时候执行表达式3,不执行表达式2。
注意:在逻辑操作符执行时会发生短路的现象:
&&:表达式1 && 表达式2,如果表达式1为假的话,表达式2就不执行判断。
||:表达式1 || 表达式2,如果表达式1为真的话,表达式2就不执行判断。
这样就称为短路。
2.switch语句
除了if语句外,我们还可以使用switch来实现选择分支结构。
语法形式
程序会按照expression的值匹配到对应的case value,然后再执行case value后面所控制的语句。如果没有匹配到case的话,则会执行default。
注意:expression后面必须是整形表达式,case后面必须是整形常量表达式。
在程序中我们要在每一个case语句后加一个break来跳出这个switch语句。否则会将case后面所有case语句都执行。
很多人对switch里的case句子的顺序有疑问,在switch语句里是没有顺序要求的,但是为了观看,尽量把case 1到case n,default放在最后。