22/3/25学习笔记(Part 5)
while循环语句

(注释:continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接会跳转到wile语句的判断部分,进行下一次循环的入口判断。但break是用于永久的终止循环。)
- 案例

(注释:输入函数(scanf,getchar等等)都是从与键盘中的缓冲区取的数据,密码已经拿走,剩下的\n直接被放入getchar,即ch里,于是自动打出确认成功。)

所以要在下一次输入之前,清除缓冲区。

当输入密码有空格之后的其他字符时,会残留在缓冲区:

所以此时需要将缓冲区进行while循环用getchar清理

for循环语句
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() 能读包含空格的一行数据。
⭐题目
- 该代码块是什么意思?
#include<stdio.h>
int 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<stdio.h>
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为假,所以不会进入循环。
本文是关于C语言循环语句的学习笔记,包括while、for、do while循环的使用,详细解释了各种循环语句的语法和注意事项,并提供了示例。还提到了getchar()函数的使用以及与输入相关的缓冲区清理。文章最后设有练习题和解答。
612

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



