if(判断表达式){
判别表达式为真,执行得代吗
}
else
{
判别表达式为假,执行代码
}#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <limits.h> #include <time.h> int main(void) { int a; printf("请输入一个数:"); int ret = scanf("%d\n",&a); if(a > 0) { printf("a > 0\n"); } else { printf("a <= 0\n"); } return EXIT_SUCCESS; }
if(判断表达式1)
{
判别表达式1为真,执行代码
}
else if (判断表达式2)
{
判别表达式1为假,判断表达式2为真,执行代码
}
else if (判断表达式3)
{
判别表达式1为假,判断表达式2为假,判断表达式3为真,执行代码
}#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <limits.h> #include <time.h> int main(void) { //表示学生成绩 int score; printf("请输入学生成绩:"); scanf("%d", &score); if(score >= 90) //表示优的成绩 { printf("优\n"); } else if(score >= 70 && score < 90) { printf("良\n"); } else if(score >= 60 && score 70) { printf("及格\n"); } else { printf("不及格\n") } return EXIT_SUCCESS; }
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <limits.h> #include <time.h> int main(void) { int pig1, pig2, pig3; printf("请输入3只小猪的重量:"); scanf("%d %d %d", &pig1, &pig2, &pig3); if(pig1 > pig2) { printf("第一只小猪最重,体重为:%d\n", pig1); } else { printf("第3只小猪最重,体重为:%d\n", pig2); } else { if(pig1 > pig3) { printf("第2只小猪最重,体重为:%d\n", pig2); } else { printf("第3只小猪最重,体重为:%d\n", pig3); } } return EXIT_SUCCESS; }
switch(判别表达式)
{
case 1:
执行语句;
break;//表示一个分支语句执行结束,跳出switch
case 2:
执行语句
break;
......
case n:
执行语句
break;
default;
break;
}#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <Windows.h> int main(void) { //获取学生成绩 int score; printf("请输入学生成绩:"); scanf("%d", &score); switch(score / 10) { case 10: printf("优\n"); break; case 9: printf("优\n"); break; case 8: printf("良\n"); break; case 7: printf("良\n"); break; case 6: printf("及格\n"); break; default: printf("不及格\n"); } return EXIT_SUCCESS; }
精确匹配,机构较清晰,较if语句执行效果较高
case穿透
一个case分支,如果没有break,每执行完,case的代码,会继续向下,执行下一个case分支代码,这称之为case穿透
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <Windows.h> int main(void) { //获取学生成绩 int score; printf("请输入学生成绩:"); scanf("%d", &score); switch(score / 10) { case 10: //让switch发生case穿透 case 9: printf("优\n"); break; case 8: case 7: printf("良\n"); break; case 6: printf("及格\n"); break; default: printf("不及格\n"); } return EXIT_SUCCESS; }
语法:while( 判断表达式) //如果为真,执行循环体,如果为假,跳出循环
{
循环体
}#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <Windows.h> int main(void) { int num =1; while(num <= 100) { //判断 if(num % 7==0 || num % 10 ==7 || num / 10==7) { printf("敲桌子\n"); } else { printf("%d\n", num) } num++; } return EXIT_SUCCESS; }
语法:do{
循环体
}while ( 判断表达式);#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <limits.h> #include <time.h> int main(void) { /*求水仙花,一个三位数(100-999)各个位上的数子的立方和等于数字 分析:3的陪数:100-999 个为数:int a = num % 10 十位数:int b = num / 10 % 10 百位数:int c = num / 100 */ int num = 100; //从100开始 int a, b, c; //定义个位,十位,百位的变量 do { a = num % 10; //求个位数 b = num / 10 % 10; //求十位数 c = num / 100; //求百位数 //判断这个数字是否是水仙花数 if (a * a * a + b * b * b + c * c * c == num) { printf("水仙花:%d\n", num); } num++; } while (num <= 999); return EXIT_SUCCESS; }