注:在更完C语言小白的第十课后(大概把循环语句弄完,也带上一些数组),就进入C语言初阶系列(比如函数,宏,枚举与递归,指针,结构体相关知识)中间会穿插一些补充内容,如数据类型的较全面补充,字符串和指针联系起来,文件处理等等。这些肯定会比十篇博客多不少,至于进阶内容日后再说。
1、三目运算符 例如:下面使用的条件运算符
max的赋值: a ? b : c如果a不为0,则结果是b的值,否则是c的值
max = (n1 > n2) ? n1:n2
这个运算符有很多应用,之一便是绝对值的计算。比如下面计算差的绝对值
printf("%d\n", (n1>n2) ? n1-n2:n2-n1)
[补] if条件句中只能有一个语句,若多于一个,就用大括号括起来,变为一个可以被看作是单一语句的复合句。否则多个语句存在的话后面的else不会与if构成对应关系,出现编译错误。
2、逻辑运算符 1)&& 逻辑与运算符 表示“且”的含义 如a&&b 即若a、b均不为0,则结果为1,否则为0 2) || 逻辑或运算符 表示“或” 的含义如a||b 即若a或b中至少有一个不为0,则结果为1;若a、b均为0,结果才是0.
【重要补充】不能将两个(不)等式合并,否则只判断前面一个(不)等式。例如:0<a<100,在计算机看来,只要a满足大于0就输出1。因此,要实现a既大于0且小于100,应该使用a>0&&a<100。原因:< > ==这三个符号都是双目运算符。值得一提的是,&&在左操作数为0的时候就不会对右边判断。这很好理解,毕竟它表示的是“且”的意思。||操作符则刚好相反,它在左操作符不为0的时候就不会对右边判断。总的来说,仅根据左操作符就判断输出被称之为短路求值。
3、if语句易错点
1)多加分号
if(a>0);
printf("在if的判断的)后多加了分号");
2)判断相等时使用 =
4、switch语句:将程序分为多个分支
格式:(理论上case可以有很多)
switch(){
case 1 :语句1 ; break;
case 2 :语句2 ; break;
case 3 :语句3 ; break;
default : 语句4 ; break;
}
1)当表达式的判断结果与任何一个case都不一致时,程序就会跳转到default继续执行
2)每个case后面可以跟多个语句,中间用分号隔开就行
3)假如case 2中不含break那么在执行完语句2后,程序会自动落入语句3继续执行,直到遇到break跳出switch语句
从多个分支的角度看,switch要比if更加简洁