分支与循环(2)
原创
©著作权归作者所有:来自51CTO博客作者进取的小小人的原创作品,请联系作者获取转载授权,否则将追究法律责任
while循环
语法结构:
while(表达式)
循环语句:
break停止循环,continue终止循环中continue后面的代码
getchar的作用:
int main()
{
int ch=getchar(); //getchar可以接受一个键盘的字符
putchar(ch); //与printf作用相同
printf("%c\n",ch); //输入一个,输出两个
return 0;
}
int main()
{
int ch=0;
while(ch=getchar()!=EOF) //EOF-end of file->文件结束标志
//本质上是-1
{
putchar(ch);
}
return 0;
}//这里可以输出ctrl+z使代码结束运行
int main()
{
int ret=0
char password[20]={0};
printf("请输入密码:>");
scanf("%s",password); //输入密码,并存放在password数组中
//%s是指输入的是一个字符串
//缓冲区还剩下一个\n,可以再加一个getchar();
// while(ch=getchar() !='\n')
// {
// ;
//}
printf("请确认(Y/N):>")
ret=getchar();
if(ret=='Y')
{
printf("确认成功\n");
}
else
{
printf("放弃确认\n");
}
return 0;
}结果:放弃确认
如果输入的是123456的话,前面scanf在输入缓冲区把123456取走,最后的\n被
getchar读走
代码2:
#include<stdio.h>
int main()
{
int ch;
while((ch=getchar())!=EOF)
{
if(ch<'0'||ch>'9')
continue;
putchar(ch);
}
return 0;
}
for循环
语法:
for(表达式1;表达式2;表达式3)
循环语句;
//表达式1为初始化部分,用于初始化循环变量的
//表达式2为条件判断部分,用于判断循环时候终止
//表达式3为调整部分,用于循环条件的调整.
实际的问题:
使用for循环,在屏幕上打印1-10的数字
int main()
{
int i=0;
//初始化 判断 调整
for(i=1;i<=10;i++)
{
printf("%d ",i);
}
return 0;
}
for语句的循环控制变量
建议:1.不可在for循环体内修改循环变量,防止for循环失去控制
2.建议for语句的循环控制变量的取值采用"前闭后开区间"写法
注:for循环的初始化,调整,判断都可以省略,但是for循环的判断部分如果被省略,那判断部分就是恒为真,死循环
如果不是非常熟练,不要随意省略.
举例:
int main()
{
int i=0;
int j=0;
for(i=0;i<10,i++)
{
for(j=0;j<10;j++)
{
printf("hehe\n");
}
}
return 0;
}//这里打印100个呵呵
int main()
{
int i=0;
int j=0;
for(;i<10,i++)
{
for(;j<10;j++)
{
printf("hehe\n");
}
}
return 0;
}//10个hehe
一道笔试题考验一下:请问循环要循环多少次?
#include <stdio.h>
int main()
{
int i=0;
int k=0;
for(i=0,k=0;k=0;i++,k++)
k++;
return 0;
}
0次, 判断语句为k=0,k赋值为0,为假,代码进不去,
do..while()循环
do语句的语法:
do
循环语句;
while(表达式);
int main()
{
int i=1;
do
{printf("%d ",i);
i++;
}
while(i<=10)
return 0;
}