1.if语句
if语句语法如下:
1.1 if(表达式)
语句
在C语言中,0为假,非零为真,也就是表达式的结果是0,则语句不执行;又如果表达式的结果是非零,那么语句则执行
eg:输入一个整数判断是否为零
#include <stdio.h>
int main()
{
int num=0;
scanf("%d",&num);
if(num%2==1)
printf("%d是奇数\n",num);
return 0;
}
当我们输入一个奇数时,If后面的表达式为真,它就会打印这个奇数是奇数这句话,当我行输入一个偶数时,表达式结果为假,那么它就会直接跳过这个语句,直接return 0;然后结束程序。
1.2 else总是与if配对使用
语法如下:
if(表达式)
语句1
else
语句2
else语句可以和if语句配对使用,用来管理if表达式为0的部分
eg:输入一个数判断为奇数还是偶数
include <stdio.h>
int main()
{
int num=0;
scanf("%d",&num);
if(num%2==1)
printf("%d是奇数\n",num);
else
printf("%d是偶数\n",num);
return 0;
}
if语句先判断是否为奇,不是奇就是偶了。
1.3if或else后跟随多条语句
当后面跟随多条语句时if,else只分控制一条语句,若想执行多条语句时,应用{}括起来,使其整体成为一条复合语句。
eg:
int a=2;
if(a>3)
printf("he");
printf("he");
该代码的输出应该为he而不是空白,而如果把两个printf括起来则什么也不会打印。
else也同理
1.4嵌套if
if,else语句中,if和else内部也可与if连用,构成多重判断。即在它们原来条件的基础上再判断。
eg:输入一个数,如果是正数,再判断其是奇数还是偶数,如果不是正数则输出非正数
#include <stdio.h>
int main ()
{
int num=0;
scanf("%d",&num);
if(num>0)
{
if(num%2==1)
printf("%d是奇数\n",num);
else
printf("%d是偶数\n",num}
else
printf("%d是非正数\n",num)
return 0;
}
1.5悬空else
如果有多个if和else,那么else总是与最接近的if相匹配。
eg:
int a=0;
int b=2;
if(a==1)
if(b==2)
printf("he");
else
printf("ha");
对于运行结果多人第一反应会是ha;而实际上结果是什么而不打应,因为if(b==2)被if(a==1)控制,而else又被最近if(b==2)控制,所以当if(a==1)为假时if(b==2)不会被执行,从而else也不会被执行,所以结果是什么也不打印
2.switch 语句
除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。
switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重
的 else if 改成更易⽤、可读性更好的形式
2.1switch语法
switch (整形表达式)
{
case 整形常量1: 语句1
case 整形常量2: 语句2
default: 整形语句3
}
关于switch用代码更好理解
eg:
}
case用来接受switch (整形表达式)中表达式的结果,先判断结果是什么再去执行相应的语句,但switch的判断只会执行一次,所以常需要break来跳出分支判断。而default则是处理不包括case常量的部分。