C语言是结构化的程序设计语言,结构是顺序、选择、循环这三种结构。在C语言中,用if,switch来实现分支;for,while,do while 来实现循环。
1.1if语句:
1 if(表达式)
2 语句
当表达式成立(为真),那么语句就执行;表达式不成立(为假),语句就不执行。(C语言中,0表示假,非0表示真)。比如输入一个数,判断正数
1 inlcude<stdio.h>
2 int main()
3 {
4 int i=0;
5 scanf("%d",&i);
6 if(i>0)
7 printf("正数");
8 return 0;
9 }
1.2else语句:
如果一个数不是正数,那还会是负数,判断正负数的时候怎么办呢?
这个时候就要用到if...else...语句了,语法形式如下:
1 if(表达式)
2 语句1
3 else
4 语句2
比如输入一个数,判断正负数。
1 inlcude<stdio.h>
2 int main()
3 {
4 int i=0;
5 scanf("%d",&i);
6 if(i>0)
7 printf("正数");
8 else
9 printf("负数");
10 return 0;
11 }
1.3默认在
if 和 else
语句中默认都只控制⼀条语句,比如:
1 #include <stdio.h>
2 int main()
3 {
4 int age = 0;
5 scanf("%d", &age);
6 if(age >= 18)
7 printf("成年了\n");
8 printf("没有实名限制了\n");
9 return 0;
10 }
上述代码,不管输入的是<18还是>18,“没有实名限制了”都会打印在屏幕上,这就是因为if只能控制一条语句,printf("没有实名限制了\n")是不受if控制的;当我们要if语句同时控制两条语句时,用{}把要控制的语句括起来就可以了,else也一样。
1 #include <stdio.h>
2 int main()
3 {
4 int age = 0;
5 scanf("%d", &age);
6 if(age >= 18)
7 {
8 printf("成年了\n");
9 printf("没有实名限制了\n");
10 }
11 else
12 {
13 printf("未成年\n");
14 printf("有实名限制\n");
15 }
16 return 0;
17 }
1.4嵌套if
在if else语句在中,else可以与另一个if语句连用,比如:
1 #include<stdio.h>
2 int main()
3 {
4 int i = 0;
5 scanf("%d", &i);
6 if(i==0)
7 {
8 printf("你输入的数是0\n");
9 }
10 else
11 {
12 if (i > 0)
13 {
14 printf("正数\n");
15 }
16 else
17 printf("负数");
18 }
19 return 0;
20 }
1.5悬空else
如果有多个
if
和
else
,要记住⼀条规则,
else
总是跟最接近的
if
匹配。比如下面
i=1不成立,但是程序并没有打印heihei,这是因为if和最近的else配对,所以第一个if就不成立,程序后面就不执行,所以为了避免出现这种问题,最好还是添加{}将每个if else语句括起来。
2.1
switch语句
switch
语句是⼀种特殊形式的
if...else
结构,⽤于判断条件有多个结果的情况。它把多重
的
else if
改成更易⽤、可读性更好的形式。
1 switch (expression)
2 {
3 case value1: statement
4 case value2: statement
5 default: statement
6 }
在上述代码中,根据expression不同的值,执行相应的分支。特别要注意的是:switch后的expression必须是整型表达式;case后面的值,必须是整型常量表达式。比如下列:输入一个数,计算除3之后的值。
1 #include <stdio.h>
2 int main()
3 {
4 int n = 0;
5 scanf("%d", &n);
6 switch(n%3)
7 {
8 case 0:
9 printf("整除,余数为0\n");
10 break;
11 case 1:
12 printf("余数是1\n");
13 break;
14 case 2:
15 printf("余数是2\n");
16 break;
17 }
18 return 0;
19 }
特别要注意的是:case
和后边的数字之间必须有空格 ; 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。s
witch后面的表达式只是去对应开始执行case*,是switch的起点,如果要让程序只执行一个case,就需要添加break,就不执行后面的case。若是没有相应的值,就执行default。switch语句中,case子句和default子句没有顺序要求,但是通常将default放在最后。
#第一次写博客,有不对的地方,欢迎大家指正。