C_语句
C语言语句的大规则 从上往下顺序执行
条件循环
if(){}else{}
for(;😉{}
while(){}
do{}while(); 至少循环一次
1.顺序执行语句
从main函数开始,一条一条语句往下执行
2.分支选择语句
if
(1)当某些条件成立时才执行
if(condition){
}
(2)当条件成立时执行某个分支,当不成立时执行另外的分支
if(condition){
}else{
}
(3)条件分支有很多
if(condition1){
}else if(condition2){
}else if(condition3){
}....
(4)所有的情况都有对应有分支
if(condition1){
}else if(condition2){
}else if(condition3){
}....else if(conditionx){
}else{
}
这种情况是从上往下逐个条件进行判断,如果有一个语句为真,则执行对应的分支,执行完该分支以后下面的表达式不再判断
在一个完整的if(){}else if(){}.. 分支语句中,只会执行其中一个或者0个分支
如果有else分支,一定会执行其中一个分支
3.switch 开关语句
对于任意一个表达式在某次执行过程中总会得到一个确切的值,
然后switch语句会根据该值直接跳到相同的case 值的地方开始执行,一直遇到break结束switch语句
defualt 相当于 if语句中的else部分, 可有可无
只有当所有的case都不满足时才会匹配作为入口执行(不一定是所有的case都不满足时才会执行)
case是开 break是关
switch(表达式){//switch(表达式) 表达式结果的类型只能是整数类型
case 常量表达式1://常量表达式 的结果只能是整数类型
[break];
case 常量表达工2://常量表达式的结果不能一样
[break];
case 常量表达式3:
..
[break];
[default:]
[break];
}
注意:
default可以放在任意位置,但都必须是所有的case不满足时才会执行
default和case一样,只是作为入口,一旦进入就是顺序往下执行,直至break
case值只能是常量或者常量表达式
case值不能重复
case后面的语句可以用{} 也可以不用
关于{}问题(不建议省略):
switch() 后面不一定要有{}
如果只有一个case语句时 可以省略
if或者else if 或者else如果代码块只有一条语句时,{}可以省略
{}怎么放的问题
紧凑型
if(){
}
对齐型
if()
{
}
else if()
{
}
{}缩进问题
{
//代码缩进 {向右缩进
}
//} 向左编进
switch练习:
1. 百分制成绩 输出对应等级
2. 有效日期是当年的第几天
4.条件循环语句
for
语法规则:
for(init_conment;loop_condition;change_forval_conment){
//循环语句
}
intit_conment :只会执行一次 一般用于初始化循环变量
C99标准以后 允许在些处定义变量 -std=c99
init_conment 可以没有
loop_condition:只有当该条件为true时才会执行循环体内部的语句
如果该条件为false时,则接着执行for(){}循环后面的语句
loop_condition 可以没有 没有条件时表示 恒为真
change_forval_conment:
当执行完一次循环体内部的语句时,执行该语句
一般是用于改变循环变量的值
change_forval_conment 该语句也可以没有
循环语句也可以为空
for(;;)语句中语句可以没有,但是;不能少
如果循环体语句为空
for(conments;conments;conments);
for(conments;conments;conments);{} {}里面不属于循环的语句
从键盘输入两个整数,求最大公约数
32 24 96 44
32-24=8 大-小 96-44=52
24-8=16 52-44=8
16-8=8 44-8=36 36-8=28 28-8=20 20-8=12
8-8=0 12-8=4 8-4=4 4-4=0
8是最大公约数
32 24 96 44
32%24=8 96%44=8
24%8=0 44%8=4
8最最大公约数 8%4= 0 4是最大公约数
33 17 33%17=16
33-17=16 17%16=1
17-16=1 16%1 =0 1
16-1=15
15-1=14
...
1-1=0
使用以下两种语句实现:
while
do while
1.输出10(包括10)以内的偶数
2.求[0,100]之间所有整数之和
5.标准输出:
printf函数将内存中的数据输出到 输出缓冲区
当到达一定的条件时,输出缓冲区的内容会输出到屏幕(终端)
(1) \n
(2) 缓冲区满 4kb
(3) 强制输出 fflush(stdout) 刷新缓冲区
6.标准输入:
scanf函数是从 输入缓冲(存)区 中按格式占位符读取数据
如果输入缓冲区没有数据可读,那么将会从控制台等待输入
scanf() 可以从控制台读入数据
int num = 0;
scanf("%d",&num);
int n=0,m=0;
scanf("%d%d",&n,&m);
scanf传送门:http://blog.pfan.cn/katwood/53198.html
键盘所有的字符都会输入到 输入缓冲区中 包括 Enter ‘\n’
除了字符%c以外所有的格式占位符都会自动忽略 空白字符
%c 会读走 空白字符
清空输入缓冲区:
scanf("%\n]"); //从缓冲区中读取数据到\n为止 并且丢掉
scanf("%c"); //从缓冲区中读取任意一个字符 并且丢掉
1086

被折叠的 条评论
为什么被折叠?



