22/3/19学习笔记(Part 5)
while循环语句
(注释:continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接会跳转到wile语句的判断部分,进行下一次循环的入口判断。但break是用于永久的终止循环。)
案例
(注释:输入函数(scanf,getchar等等)都是从与键盘中的缓冲区取的数据,密码已经拿走,剩下的n直接被放入getchar,即ch里,于是自动打出确认成功。)
所以要在下一次输入之前,清除缓冲区。
当输入密码有空格之后的其他字符时,会残留在缓冲区:
所以此时需要将缓冲区进行while循环用getchar清理
for循环语句语法为:
for(表达式1;表达式2;表达式3)
//表达式1即初始化
//表达式2即判断语句
//表达式3即调整语句
循环语句;
for循环中break的用法:
for循环中continue的用法:跳过该条令,其他继续循环。
注意:不可在for循环体内修改循环变量,防止for循环失去控制。并且for语句的循环控制变量的取值采用“前闭后开”的区间写法。
for循环变种之一(省略语句):
int main()
{
for(;;)
//三条语句皆可省略
//判断部分的省略 = 判断部分恒为真
{
printf("质胜文则野,文胜质则史,文质彬彬,然后君子。n");
}
return 0;//该循环会进入死循环。
}
以下代码块:将会打印出九个“允执其中”。
int main()
{
int a = 0;
int b = 0;
for(a=0; a<3;a++)
{
for(b=0; b<3; b++)
{
printf("允执其中n");
}
}
return 0;
}
以下代码块,只会打印出三个“毋意,毋必,毋固,毋我”。
int main()
{
int a = 0;
int b = 0;
for(; a<3;a++)
{
for(; b<3; b++)
{
printf("毋意,毋必,毋固,毋我n");
}
}
return 0;
}
for循环变种之二(用多个变量控制):
int main()
{
int x, y;
for(x=0, y=0; x<21 && y<23; x++, y++)
{
printf("思想就是对思想的思想。n";)
}
return 0;
}
do while循环语句
do while语法如下:
do
循环语句
while(表达式);
do while先斩后奏,先执行后判断。当do while循环语句中运用continue时,会进入死循环。
do while至少执行一次,所以很少使用。
Little tips
getchar()
1.getchar是用于获取一个用户键盘输入的字符。只能接收一个字符,其函数值就是从输入设备获取到的字符。
(注释:该代码块不会忽视enter键(回车键))
2.getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCII码,出错返回-1,输入的字符不会回显在屏幕上。getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。
当输入CTRL+Z时,**getchar()**就读取结束。
putchar(),即输出一个字符
int main()
{
int ch = getchar();
putchar(ch);//输出一个字符
return 0;
}
EOF = end of file(文件结束标志) ,即-1
在上文For循环中,例用break时候,用到了if(a == 70),要注意在此需使用两个“=”,即为“==”,表示判断,当为一个“=”时表赋值。
gets() 能读包含空格的一行数据。
⭐题目- 该代码块是什么意思?
#includeint main() { int ch = 0; while((ch = getchar()) ! = EOF) putchar(ch); return 0; }
- 该代码块是什么意思?
int main()
{
int ch = 0;
while((ch=getchar())!=EOF)
{
if(ch<'0'|| ch>'9')
continue;
putchar(ch);
}
return 0;
}
- 请问该循环要循环多少次?
#include⭐答案int main() { int i = 0; int k = 0; for(i=0, k=0; k=0; i++, k++) k++; return 0; }
- 这块代码的意思为:输入一个字符,当它不是-1时便输出它。
其中,getchar旨在获取一个字符,!旨在反逻辑操作,EOF旨在为-1,即终止。
代码意思为,输入一个字符并赋值给ch,当它不是-1的时候就输出这个字符。ch=getchar()的意思为“ch被赋值为getchar的返回值”。getchar的返回值为ASCII值,0的ASCII值为48,9的ASCII值为57,即输入的不是数字字符执行cuntinue,即跳过,不显示。当输入的为数字时,显示。
3.零次。因为“k = 0”是赋值,在判断语句被赋值为0,0为假,所以不会进入循环。



