赞
踩
C语言是结构化的程序设计语言
分支语句对应的就是选择结构,循环语句对应的就是循环结构
分支语句
goto语句
C语言中由分号隔开的就是一条语句,比如:
- #include <stdio.h>
-
- int main()
- {
- printf("Hello, world!\n");
- 3 + 5;
- ;//空语句
- return 0;
- }
语法结构
- if(表达式)
- 语句;
- //表达式中的值为真则执行语句,为假则不执行
- if(表达式)
- 语句1;
- else
- 语句2;
- //表达式中的值为真,则执行语句1,为假则执行语句2
C语言中如何表示真假?
非0 是 真 例如 -1 为真
0 是 假
- #include <stdio.h>
-
- int main()
- {
- int age = 10;
- if(age >= 18)
- printf("成年");
- else
- printf("未成年");
- return 0;
- }
通过age的值判断应该执行哪些语句
if和else后面默认只跟一条语句
- #include <stdio.h>
-
- int main()
- {
- int age = 20;
- if(age >= 18)
- printf("成年\n");
- else
- printf("未成年\n");
- printf("不能喝酒\n");
- return 0;
- }
所以如果想让if和else控制多条语句,则要给语句加上大括号
- #include <stdio.h>
-
- int main()
- {
- int age = 20;
- if(age >= 18)
- printf("成年\n");
- else
- {
- printf("未成年\n");
- printf("不能喝酒\n");
- }
- return 0;
- }
为什么明明age的值是60,还打印出青年呢?
因为 18 <= age < 26 这个写法是错误的,程序执行到这会先判断 18 <= age,这是成立的所以18 <= age 被替换成 1,替换后的 1 < 26 也成立,所以整个表达式为 真,最终输出青年
- #include <stdio.h>
-
- int main()
- {
- int age = 20;
- if(age < 18)
- printf("少年\n");
- else if(age >= 18 && age < 26)
- printf("青年\n");
- else if(age >= 26 && age < 40)
- printf("中年\n");
- else if(age >= 40 && age < 60)
- printf("壮年\n");
- else if(age >= 60 && age < 100)
- printf("老年\n");
- else
- printf("老不死\n");
- return 0;
- }
判断如下代码的结果:
- #include <stdio.h>
-
- int main()
- {
- int a = 0;
- int b = 2;
- if(a == 1)
- if(b == 2)
- printf("1\n");
- else
- printf("2\n");
- return 0;
- }
运行结果什么都没打印,这就是else匹配的问题
else是和离他最近的if匹配
而上述代码中的else应该和if(b == 2)匹配,但是if(a == 1)不成立,则无法进入if(b == 2)这里,所以什么都没打印
由此可知,代码的书写风格非常重要
- if(condition){
- reutrn x;
- }
- return y;
- if(condition)
- {
- return x;
- }
- else
- {
- return y;
- }
这两个代码本质是一样的,因为return运行以后,后面的代码就不执行了
但是第二种代码风格更好
- #include <stdio.h>
-
- int main()
- {
- int num = 1;
- if(num == 5)
- {
- printf("1\n");
- }
- return 0;
- }
- #include <stdio.h>
-
- int main()
- {
- int num = 1;
- if(5 == num)
- {
- printf("1\n");
- }
- return 0;
- }
这两个代码本质也是一样的,num == 5和5 == num相比,5 == num可以防止少写一个等号,从而导致if后面的表达式恒为 真
- #include <stdio.h>
-
- int main()
- {
- //判断一个数是否为奇数
- int num = 0;
- printf("请输入一个数字:");
- scanf("%d", &num);
- if(num % 2 == 1 || num % 2 == -1)
- {
- printf("%d是奇数\n", num);
- }
- else
- {
- printf("%d是偶数\n", num);
- }
- return 0;
- }
- #include <stdio.h>
-
- int main()
- {
- //输出1~100之间的奇数
- int i = 0;
- while(i <= 100)
- {
- if(i % 2 == 1)
- {
- printf("%d ", i);
- }
- i++;
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。