目录
1if语句
if语句的语法:
1 if(表达式)
2 语句
语法的意思是说:如果表达式为真则执行下面的语句,当表达式为假的时候那么就不会执行语句。
举个例子:
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
if(a < b)
printf("a<b");
return 0;
}
可以看出当a<b时则打印出来,如果大于时则不打印。
那a>b时我们想要打印出该怎么办呢?
if....else.....
这时就要用上else了。它与if构成一个语句:if....else.....
这个语句的语法如下:
1 if(表达式)
2 语句1
3 else
4 语句2
这个语法的意思是当表达式为真时执行语句1否则执行语句2
再来看看个例子吧
#include <stdio.h>
int main()
{
int a = 0;//初始化
int b = 0;//初始化
scanf("%d %d",&a,&b);//从键盘上输入2个输入给a和b
if(a < b)
printf("a<b");
else
printf("a>b");
return 0;
}
这样我们从键盘上输入2个数给a、b如果a大于 b就输出 a>b a小于b就输出 a<b.
多条if语句与一条else
如果if语句中有多条语句怎么办呢?在c语言中if语句只能控制一个语句要让if语句能控制多条语句就加上花括号{}就行了就像下面一样
1 if()
2 {
3 语句1
4 语句2
5 }
6 else
7 语句4
else悬空
不仅有if控制多少语句的问题还有else悬空的问题,当有多条if语句只有一条else构成的语句该怎么 办呢?此时记住else与它最近的if构成if....else....的形式,就像下面这样
#include <stdio.h>
int main()
{
int a = 0;//初始化
int b = 1;//初始化
if(a == 0)
printf("hello");
if(b == 1)
printf("word");
else
printf("x");
return 0;
}
else只与if(b==1)构成if.....else....这样的形式。不会与第一个if构成
f的嵌套
在if else语句中,else在后面加上if 构成 else if 来进行多重判断,那应该怎么嵌套呢?举个例子判断一人成长的阶段到小于18到年为少年,18到40为青年,41到59中老年,60往上老年代码如下:
#include <stdio.h>
int main()
{
int nainling = 0;
scanf("%d",&nainling);
if (nainling < 18)
printf("少年");
else if (nainling <= 40)
printf("青年");
else if (nainling <= 59)
printf("中老年");
else
printf("老年");
return 0;
}
switch语句
switch的语法
switch(整形表达式)
{case 1:表达式
break;
case 2:表达式
break;
....
default:表达式
break;
}
注意case后面必需是整形常量如case1 这个1就是整形常量。
break
break是直接结束的意思,比如一个循环里带了break那么这个循环就结束了,而switch语句中如果没了break那么就会执行case1后再执行case2直到执行到default才结束。来看一下代码
#include <stdio.h>
int main()
{
int a=0;
scanf("%d",&a);//从键盘上输入一个数
switch (a)
{
case 1:
printf("星期一\n");//输入1则打印星期一以此类推
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");
break;
case 7:
printf("星期天\n");
break;
default:
printf("输入错误请重新输入");
break;
}
return 0;
}
如果没有break那么不管你输入几,那么都会打印后面所有的,如:输入2则打印星期二到星期天。
default
我们在使用switch语句时可能会遇到表达式的值无法匹配case那么这时候就要用到default了,也就是说,如果上面的代码中输入的是8那么一周中没有星期八无法匹配case这时后就会执行default打印出来。
case和default顺序有要求吗?
没有,不过通常把default放在case后面
关于分支结构我就总结到了这里。如果有什么不对的欢迎大家指出