一.if语句
if语句注意的点有:默认if语句后面只能跟一条语句,后面if,else多的时候 ,if else的匹配遵循就近原则,else就会和最近的if匹配。如上图的else就会与if(b==2)匹配。
注意捏,if语句()里面为判断真假条件,假则不能接着向下进行,例如(0),则为假,不能进行
所以代码风格很重要,适当的在if后面使用{}可以使代码的逻辑更加清楚。
二.switch语句
基本框架如图 ,但要注意:1.switch(整型表达式),里面的表达式不能用浮点型,只能用整型2.case后面必须是整型常量表达式 3.default语句可前可后 4.在最后一个 case 语句的后面加上一条 break语句(之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句) 5.每个switch语句中只能出现一条default子句 6.在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break
三.while语句
大概组成如图所示,下来介绍break,continue在while语句中的作用
在此处当a的值等于15时,执行break。在循环中只要遇到break,就停止后期的所有的循环,直接终止循环,相当于直接跳出while的大括号。
所以break在while循环中的作用是终止永久循环
此处有个编程好习惯:用15==a来代替a==15,这样少打个=会有提示
在此处当a>15后就一直在如图中循环,不进入下一步,所以continue的作用为终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断
getchar putchar 是一对
scanf和getchar是输入,printf和putchar是输出
getchar,putchar是单一针对字符型的
scanf,printf输入输出各种类型都得。
putchar(getchar)都是只输入(输出)一个单个字符,如果输入(输出)的是字符串,函数也只读取头一个字符,如果下面还有getchar(putchar)函数则接着上个getchar(putchar)函数读到输入缓冲区
输入是文件结束符EOF时,即windows下为组合键ctrl+z ,getchar才会停止执行,不再接收
下面来个情景模拟,深入理解getchar用法
为什么会没输入Y或N就运行结束,直接就确认失败了呢?
在输入缓存区中,scanf取走abcdef,碰到\n时停止。但是输入缓存区还剩下\n,下面的getchar检测到输出缓存区还有数则直接取走,所以此时ch=‘\n’,直接确认失败
当你在scanf下面加入一个getchar,此时的getchar就有一个清理键盘缓冲区的作用,拿走缓冲区里面的数据,从而不会影响到下面getchar的接收
使用scanf要注意,scanf在输入缓冲区遇到空格也会停止截取数据 !!
还有一个getchar,putchar的相关代码
这是一串只打印数字字符,跳过其他字符的代码,可以看到数字的后面在闪烁,并未停止,说明仍在循环。
三.for语句
for(表达式1; 表达式2; 表达式3)
表达式1为初始化部分,表达式2为条件判断部分,表达式3为调整部分。
相对于其他语句来说,for循环的风格更胜一筹,更加的简便清晰,for循环使用的频率也最高。
break和continue在for里面的作用和while里面的作用大致相同,但是也有一些轻微的变化
如上两图,第一图为while语句,a==5以后就一直在判断条件上循环,陷入死循环。
第二图为for语句,a==5以后就跳过了下面的5的打印,回到调整部分a++,再接着到判断部分继续
当for嵌套起来时,for中for:
进行了3*3*3=27次循环,每个for循环的次数相乘即为总循环次数,for嵌套里面的进行完就往外一层接着进行。
分析:J中循环,进行了三次,然后j=3,出到外面i循环,然后i++,i=1,接着进入J循环,但是此时j并没有初始化,j还是3,就不会进行打印。
还要学会使用多余变量来控制循环:
通过x,控制循环在2次。
习惯建议:
1.采用前闭后开写法,for(i=0;i<=9;i++)和for(i=0;i<10;i++)效果是一样的,但是前闭后开更清楚直观,例如展现了会循环几次。
2.不可在for 循环体内修改循环变量,防止 for 循环失去控制。
四.do while语句
do while语句和别的语句不同,是先执行再判断 ,且至少循环一次,因为使用的场景有限,所以不是经常使用。
break和continue在do while中的作用和在其他语句的作用一样
如上,一样的跳出循环 。
do while语句少用就对了
五.goto语句
如图goto语句直接跳到紧跟其后的步骤again处 ,从而实现循环。goto语句一般情况下,很少用,因为goto语句可控性低,风险大。
其主要作用:是终止程序在某些深度嵌套的结构的处理过程。
如图,直接跳出多层for嵌套