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;
} 

京公网安备 11010502036488号