分支与循环(2)

时间:2022-10-12 22:57:52

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;
}