C语言是结构化的程序设计语言
顺序结构,选择结构,循环结构
我们先来学习分支语句就是所谓的选择结构
什么是语句?
C语言中由一个分号;隔开的就是一条语句
如:
3+5;
;//;内没有内容就是空语句
c语言是如何表示真假的?
非0就是真,0解释假
if语句
语法结构:
写法一:
if(表达式)//表达式结果为真,语句被执行
语句;
#include <stdio.h>
int main()
{
int age = 10;
if (age >= 18)
printf("成年");
return 0;
}
结果为空的
写法二:
if(表达式)//如果表达式为真,语句1执行,否则语句二被执行
语句1;
else
语句2;
#include <stdio.h>
int main()
{
int age = 10;
if (age >= 18)
printf("成年");
else
printf("未成年");
return 0;
}
结果为未成年
假如我们输入这样一串代码
#include <stdio.h>
int main()
{
int age = 20;
if (age >= 18)
printf("成年\n");
else
printf("未成年\n");
printf("不能谈恋爱");
return 0;
}
得到的结果是成年,不能谈恋爱
为什么会出现这种情况,是因为每个if,else只能控制一条语句
如果我们想要让else控制两条语句怎么办呢?
#include <stdio.h>
int main()
{
int age = 20;
if (age >= 18)
printf("成年\n");
else
{
printf("未成年\n");
printf("不能谈恋爱");//使用大括号将这两条语句放在一起
}
return 0;
}
写法三:
//多分支
if(表达式1)//如果表达式为真,语句1执行,否则表达式2,表达式2为真,语句2执行,否则语句3执行
语句1;
else if(表达式2)
语句2;
else
语句3;
可以继续用else if增加多种选择
#include <stdio.h>
int main()
{
int age = 20;
if (age >18)
printf("成年\n");
else if(age = 18)
printf("刚刚成年");
else
printf("未成年\n");
return 0;
}
结果为成年
当我们输入这段代码时候
#include <stdio.h>
int main()
{
int age = 40;
if (age <18)
printf("少年\n");
else if(18<=age<=25)
printf("青年\n");
else
printf("其他");
return 0;
}
结果为刚刚其青年
为什么会出现这种情况
是因为18<=40时候结果为真,为1,1<=30也为真,所以结果就变成了青年
假如我们想让结果为其他,该怎么做
我们用到&&逻辑与
#include <stdio.h>
int main()
{
int age = 40;
if (age <18)
printf("少年\n");
else if(18<=age&&age<=25)
printf("青年\n");
else
printf("其他");
return 0;
}
我们再来看一下这一段代码
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
if (a == 0)
if (b == 2)
printf("haha");
else
printf("hehe");
return 0;
}
结果是空的,这是因为else和最近的if进行匹配,第一个if中a==0直接是假,所以后面的语句也没有执行