1. 运算优先级:
在C语言表达式中,如果存在多个运算符的时候,就需要考虑运算符的优先级的情况了
第1优先级:各种括号,如()、[]等、成员运算符 . ;
第2优先级:所有单目运算符,如++、–、!、~等;
第3优先级:乘法运算符*、除法运算符/、求余运算符%;
第4优先级:加法运算符+、减法运算符-;
第5优先级:移位运算符<<、>>;
第6优先级:大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=;
第7优先级:等于运算符==、不等于运算符!=;
第8优先级:按位与运算符&;
第9优先级:按位异或运算符^;
第10优先级:按位或运算符|;
第11优先级:逻辑与运算符&&;
第12优先级:逻辑或运算符||;
第13优先级:三目条件运算符 ?: ;
第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;
第15优先级:逗号运算, 。
这里会出现一个问题,之前我们判断奇偶性的时候,用过异或运算符^,那么之前碰到判定 a ^ 1 == 0的时候,我们想的是先算a^1,再算 ==0,但是由于这个优先级关系,其实先判定了1==0,再进行a^,会导致出现不可预期的错误,所以对于优先级,一定要熟悉,不能思路都有了,因为优先级的问题,得不到我们想要的结果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#include<stdio.h> int main() { int a; printf("请输入一个数:n"); scanf("%d", &a); if(a ^ 1 == 0) { printf("是偶数"); } else { printf("是奇数"); } }
当我们给a^1加括号后
不信的可以自己试试
2. if...else嵌套
做了个成绩判断的练习,很简单,当分数>90,优秀,>60及格,<60不及格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#include<stdio.h> int main() { float score; scanf("%f", &score); if(score <= 0 || score > 100) // 判断数据的合法性 { printf("输入的数据不合法"); } else { if(score >= 0 && score <60) { printf("不及格"); } else if(score < 90) { printf("良好"); } else { printf("优秀"); } } return 0; }
3. switch
做了一个输入数字输出星期几的练习
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39#include<stdio.h> int main() { int day; printf("请输入一个数(1-7):n"); scanf("%d", &day); switch(day) { case 1: printf("星期一"); break; case 2: printf("星期二"); break; case 3: printf("星期三"); break; case 4: printf("星期四"); break; case 5: printf("星期五"); break; case 6: printf("星期六"); break; case 7: printf("星期天"); break; default: printf("您输入的数据不正确"); break; } return 0; }
其中case后面不能重复,break跳出循环,default可以写在任意的位置
4. do...while
先执行一次循环体,再进行判断
那我们就可以求一个100以内的数字之和
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#include<stdio.h> //do...while循环 int main() { int num = 0; int sum = 0; do{ sum += num; num++; }while(num <= 100); printf("num = %d, sum = %d", num, sum); return 0; }
5. while循环
while和do...while很像,只不过是先判断再做循环
再做一次100以内数字之和
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#include<stdio.h> int main() { int num = 0; int sum = 0; while(num <= 100) { sum += num; num++; } printf("sum = %d, num = %d", sum, num); return 0; }
执行结果和上方一样
6. for循环
先进行条件判断,条件真执行循环体,条件假跳出循环
for(;;)将循环写死
现在就可以用for循环写一个9 * 9的乘法表了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#include<stdio.h> int main() { int i, j; for(i = 1; i <= 9; i++) { for(j = 1; j <= i; j++) { printf("%d*%d=%dt",j, i, i*j); if(j == i) { printf("n"); } } } return 0; }
两个for循环嵌套 第一个for循环控制行,第二个for循环控制一行输出几个,配合输出乘法表
总结:
今天的学习还是有些困难的,主要要思考的比较多,特别是for循环嵌套,输出想要的图形,可费了些功夫,多练习记住解题思路,化繁为简,慢慢提升。
最后
以上就是认真水蜜桃最近收集整理的关于Day06 C语言基础 运算优先级 if...else嵌套 switch do...while while循环 for循环的全部内容,更多相关Day06内容请搜索靠谱客的其他文章。
发表评论 取消回复