C语言的循环和判断需要注意的几点

循环的三大条件:初始化计数器、写循环条件、更新计数器;

 

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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值