循环的三大条件:初始化计数器、写循环条件、更新计数器;
while格式:记住把括号写在下面
while(getchar() != '\n')
{
printf("dkkjkajfasjdlfkasd\n");
}
do while格式:一个是括号写在下面,然后中间语句结尾记得要回车,while写在最后一个大括号的后面,并且记得while后面有分号。
do
{
count=count+1;
}while(getchar() != '\n');
for循环格式:记住中间是分号,大括号写在下面;
一个提示:在要输出的是判断一个东西存在不存在的时候,用flag做判断
int main()
{
int i,num,flag;
flag=0;
printf("请输入数\n");
scanf("%d",&num);
for(i=2;i <= num/2;i++)
{
if(num%i == 0)
{
flag=1;
printf("lllll");
}
}
if(flag==1)
{
printf("这个数不是是一个素数\n");
}
else
{
printf("他是一个素数\n");
}
return 0;
}
跳出循环的方法:
1、break语句:直接跳出当前循环,若是嵌套循环,跳出当前这一层的循环。:很多时候它可以减少代码的运行资源,减少资源浪费。如以下的代码,如果不加break,输入一个超级大的值,他会运行到这个超级大的值得一半,而如果加入了break,只用运行到2就好了。
#include <stdio.h>
int main()
{
long long int i,num,flag;
scanf("%lld",&num);
flag=0;
for(i=2;i <= num/2;i++)
{
if(num%i == 0)
{
flag=1;
break;
}
}
if(flag==1)
{
printf("这个数不是一个素数%lld\n%",i);
}
else
{
printf("这个数是一个素数\n");
}
}
用break跳出第一层循环:i为10,j为3
#include <stdio.h>
int main()
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(j == 3)
{
break;
}
}
}
printf("i:%d\tj:%d\n",i,j);
return 0;
}
用break跳出两层循环:i和j都输入为3
#include <stdio.h>
int main()
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(j == 3)
{
break;
}
}
if(i == 3){
break;
}
}
printf("i:%d\tj:%d\n",i,j);
return 0;
}
continue:跳过本轮循环,执行下一轮循环。
如下面的代码,把输入的a字母省略了(注意,getchar()方法输入的是一个int形,是字符的字符编码):
#include <stdio.h>
int main()
{
int theChar;
while((theChar=getchar()) !='\n')
{
if(theChar == 'a')
{
continue;
}
putchar(theChar);
}
putchar('\n');
思考使用continue,while和for循环的不同:while如果continue语句在中间就被执行了的话,可能造成死循环,因为他不会增加计数器。计数器不增加,永远都跳不出循环。
所以,我们最好使用for语句去用continue,这样至少不会出现死循环。
#include <stdio.h>
int main()
{
int theChar;
theChar=0;
while(theChar<100)
{
if(theChar%2)
{
continue;
}
theChar++;
}
}
#include <stdio.h>
int main()
{
int i;
for(i=0;i<100;i++)
{
if(i%2)
{
continue;
}
}
printf("不会有死循环");
return 0;
}