三. 分支与循环语句
- 分支语句:if,switch
- 循环语句:while for do while
1.什么是语句?
由分号;隔开的就是一条语句
分类:
- 表达式语句
- 函数调用语句
- 控制语句
- 复合语句
- 空语句
1-1 控制语句:
C 语言中0为假,非0为真
表达式为假就是0,表达式为真就是1
错误用法:18<=100为假就是0,即使是10为真也就是1,然后后面也成立
if只能控制下面的一条语句,含多条语句时得用花括号括起来(这里的if else是一条语句)
if (a == 1) if (b == 2) printf("b==2"); else printf("b==1"); //上面的代码等价于 if (a == 1) { if (b == 2) printf("b==2"); else printf("b==1"); }
1-2关于代码风格
//1.变量的命名(有意义,规范) //2.空格,空行,换行 int firstname = 10;//不好 int first_name = 10;//好 int FirstName = 10;//好
这个这样写就是if else的意思(省略else,但是不好阅读代码)
void test() { int a = 3; if (a == 3) return 1; return 0; }
关于100==age//建议这样写,但是1==num%2就不用
如果少些了一个等号,就会报错,会出现表达式左边必须是可修改的左值的报错。(左右值的概念)
悬空else指的就是else和离他最近的上一个if匹配
2.switch(break和continue)
当要输出星期一-天的时候用if elseif else麻烦,所以用switch
备注:case只能放整型&&常量表达式
int n = 1; switch (n) { case n://错误 case 2.0://错误
case管的不止一条语句,但是建议加上{},或者封装函数
break
Switch可以嵌套(和if一样)
嵌套时: break只能跳出当前的switch(和for的一样)
continue
2-1EOF
2-2getchar和scanf
函数原型:int getchar(void)
缓冲区
int main() { char str[20]; printf("请输入密码:"); scanf("%s", str); printf("请确认密码(Y/N)\n"); int ch = 0; while ((ch = getchar()) != '\n');//当输入为925623 25028带有空格的时候,循环干掉这些空格+空格后的字符,'\n'为我们的回车 //int ch = getchar();//当输入的没有空格的时候,只用干掉我们最后的那个'\n'就可以啦 char ret = getchar(); if (ret == 'Y') { printf("Yes"); } else { printf("No"); } return 0; }
非法额
关注我一起成长