运算符,分支
1. 运算符
// 1.定义变量保存用户输入的整数
int time;
// 2.接收用户输入的整数
scanf("%d", &time);
// 3.拿到秒数换算成多少分多少秒
int minu = time /60;//分钟数
int sec = time %60;//秒数
// 4.输出到屏幕上
printf("%d分%d秒\n",minu, sec);
int result =1 +2 +3 +4;
// 注意点;算术运算符,运算方向是从左往右
// 有优先级的问题,()优先级最高
2.三目运算符
单目运算符: !条件
双目运算符: 条件A&&条件B
三目运算符格式:条件A?结果1:结果2
command + shift + n新建工程快捷键
// 求三个数的最大值
int a =10, b =20, c =30;
// 1.求前两个数的最大值
int temp = a > b ? a : b;
// 2.把两个数中的较大值跟最后一个值进行比较
int max = temp > c ? temp : c;
// int max = (a > b ? a : b) > c ? (a > b ? a : b) : c;
printf("max = %d\n", max);
3.if语句
一.基本形式
1.
if(条件表达式)
{
语句1;
语句2;
。。。。
}
// 特点:只有条件满足,才会执行大括号里的代码 ()可看成一个井盖
2.
if(条件表达式)
{
语句1;
语句2;
。。。。
}else{
语句3;
语句4;
。。。。
}
特点:当条件满足就执行if后面大括号里的内容,如果不成立,就执行else后面大括号里的内容
// 就像上厕所,只有男女两种情况,总会执行一个
3.
if(条件表达式1)
{
语句1;
语句2;
。。。。
}else if(条件表达式2)
{
语句3;
语句4;
。。。。
}else if(条件表达式3)
{
.......
}......
else
{
语句m;
语句n;
。。。。。
}
特点:1.无论写多少种条件,最后只会执行一个大括号里的内容
2.如果执行了某一个if elseif大括号里的内容,就说明前面的条件都不成立
4.
if(条件表达式)
语句1;
特点:当条件成立,就会执行if后面的“第一条语句”
当条件不成立,if后面的第一条语句不会执行
二.注意点
//1.任何数值都有真假性
// if (-100) { //C语言中,非0就是真
// printf("XX\n");
// }else
// {
// printf("00\n");
// }
// 2.判断一个变量等于或者不等于一个常量的时候,把常量写在前面
int a =10;
if (0==a) {
printf("a不等于0\n");
}else
{
printf("other\n");
}
// 3.直接加个;表示一个空语句
// if(1);
// {
// printf("1111\n");
// }
// 4.变量的作用域问题
// if (1) {
// int a = 10;
// }
// printf("a = %d\n", a);
// 5.作用域混乱如果使用a的值,应该把打印函数放到{}里面去
// if(1)
// int a = 10;
// printf("a = %d\n", a);
// 6.if嵌套,if和 else是一个整体, else会匹配离他最近的if
// if(0)
// if(1)
// printf("A\n");
// else
// printf("B\n");
// else
// if(0)
// printf("C\n");
// else
// printf("D\n");
// if (1) {
//
// }else{
//
// }
4switch语句
1. switch概念
if(条件表达式)
{
}
switch(表达式)
{
// 传入一个表达式和我们的case后面的表达式进行比较(是否相等)
case表达式1:
语句1;
。。。。
break;//break的作用,是结束switch语句
case表达式2:
语句2;
。。。。
break;
。。。。
default://只有所有的case都不满足,才会执行default后面的语句
语句
break;
}
1.break的作用,是结束switch语句
2.switch里面的case只要匹配一次,其他的就失效了.包括defulat
3.switch遇到了break或者 }就结束了
4.默认情况下,default后面的break可以省略
// 注意点:1.case后面的值不能放小数,可以放整数和字符
// 2.case后面的值不能重复
// 3.case后面还可以放返回值为整数的表达式
// 4.case后面不能放变量
// default可以放在switch的任意地方,但是无论放在哪里,都会先判断其他的case,只有所有的case都不满足条件,才会执行default
// 当defalut放在其他地方的时候,break不能省略
// default可以省略
*/
2.if和switch对比
// 1.提示用户输入学生分数
printf("请输入一个0~100之间的分数\n");
// 2.定义变量保存用户输入的分数
int score = -1;
// 3.接收用户输入
scanf("%d", &score);
// 4.判断用户输入的分数,输出对应的等级
/*
if (score >= 90 && score <= 100) {
printf("A\n");
}else if(score >= 80 && score <= 89){
printf("B\n");
}else if(score >= 70 && score <= 79){
printf("C\n");
}else if(score >= 60 && score <= 69){
printf("D\n");
}else if (score >= 0 && score <= 59){
printf("E\n");
}else{
printf("少喝点三鹿\n");
}
*/
// 90 ~ 100 A 100/10 = 10 99/10 = 9
// 80 ~ 89 B
// 70 ~ 79 C
// 60 ~ 69 D
// 0 ~ 59 E
switch (score/10) {
case10://case只会匹配一次,一旦有一个匹配,其它的case就失效了
// 代码会继续往下执行,直到遇到break或者 }
case9:
printf("A\n");
break;
case8:
printf("B\n");
break;
case7:
printf("C\n");
break;
case6:
printf("D\n");
break;
case5:
case4:
case3:
case2:
case1:
case0:
printf("E\n");
break;
default:
printf("少喝点三鹿\n");
break;
}
// if switch使用
// 但凡switch能解决的问题,if全部能解决
// 但是if能解决的问题,switch不一定能解决
// 当遇到一个区间判断的时候,用if
// 当对固定不多的几个值进行判断的时候,用switch,性能稍微高一些