C语言基础语法-循环

1for循环


for(表达式1; 表达式2; 表达式3)
循环语句;
说明:1为初始化    2为条件判断    3为调整部分  

(初始化只进行一次,顺序为1 - 2(成立) - 循环语句 - 3 - 2(成立) - 循环语句 - 3 - 2(不成立) - 循环结束)

那么,看一个最基本的代码

1for的基本使用

int main()
{
int i=0;
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int sz=sizeof(arr)/sizeof(arr[0]);
for(i=0;i<sz;i++)
{
printf("%d ",arr[i]);
}
return 0;
}

通过i sz 来控制打印数组

2for与continue的联动

int main()
{
    int i = 0;
    for (i = 1; i <= 10; i++)
    {
        if (i == 5)
            continue;
        printf("%d\n", i);//此结果为1234678910
        //具体可以讲讲它的流程,
    }
    return 0;
}


一开始进入for循环  i=1为初始化也算是赋值;再判断i<=10为真,再执行if函数,判断i!=5所以continue不执行
然后打印i,最后进行调整i++,i此时为2,判断i<=10,又一次循环;一直循环,直到把4打印完后,此时进行i++,i=5
if的判断条件为真,执行continue,不打印,然后i又执行i++,此时i==6,不符合if的判断条件,所以最后结果为1234678910

3for循环可以不设条件

int main()
{
    for (;;)
    {
        printf("hehe");//注意for的初始,判断,调整都可以被省略;但是如果判断条件被省略则判断 
                         条件恒为真
        //如果不是非常熟练不要省略,此结果为一直打印hehe
    }
    return 0;
}


4for的嵌套理解

int main()
{
    int i = 0;
    int a;
    for (i = 1; i <= 10; i++)
    {
        for (a = 1; a <= 10; a++)
            printf("hehe\n");
    }
    return 0;
}


//解释 此代码是从上往下运行的,只有当第二个for循环结束时,第一个for才会进入i++
//那么第二个for执行时固定10次循环,而i是有10次循环,所以10*10=100 一共循环了100次

int main()
{
    int i = 0;
    int j = 0;
    for (; i < 10; i++)
    {
        for (; j < 10; j++)
        {
            printf("hehe\n");
        }
    }
    return 0;
}


猜猜看输出了几个hehe
解释:这个主要是没有加入初始值导致第一个for循环在第二次循环时;j = 11;所以第二个for循环直接结束,如果在第二个for循环加入初始值j = 0; 则结果为打印100次hehe。


5for循环可设立多个判断条件或多个初始条件

int main()
{
    int x, y;
    for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
        printf("hehe\n");
    return 0;
}


//这里表明for可以用两个变量设置条件  &&在这里指的是且,只有两个条件都成立时,才为真

int main()
{
    int i = 0;
    int j = 0;
    for (i = 0, j = 0; j = 0; i++, j++)
        j++;
    return 0;
}


此代码循环了0次值得注意的是 判断条件j=0 ,它的意义是假,所以不循环

6for循环练习

下面的代码是算n的阶乘

int main()
{
    int i;
    int n;
    int ch = 1;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)//这个是来算n的阶乘的,但可算的范围小。
    {
        ch = ch * i;
    }
    printf("ch=%d\n", ch);
    return 0;
}

2while循环

1while循环的基本使用

while循环的使用与for循环大同小异,能够使用for循环实现的while也可以实现

while(表达式){语句}

这就是while循环的语法

同样使用while循环打印数组

int main ()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int sz=sizeof(arr)/sizeof(arr[0]);
while(i<10)
{
printf("%d ",arr[i++]);
}
return 0;
}

大家若是不熟悉i++请不要随意使用

前面没有说过break,接着看看

2break与while循环的使用

int main()
{
int i=5;
while(1)
{
if(i>200)
break;
else
i*=5;
}
printf("%d ",i);
return 0;
}

如果没有break while(1)就是一个死循环

break在for循环中同样适用

但是这里当我们的i>200是就会结束

最后的打印结果不就是625

3 do while循环

do
循环语句;
while(表达式);
举例

int main()
{
    int i = 1;
    do
    {
        printf("%d\n", i);
        i++;
    } while (i < 10);
    return 0;
}


它与while循环基本一样,while是先判断后执行,do  while是先执行后判断
同switch for while 一样都可以break和continue结合
例如可以在printf上方加入if(i==5)
                        continue      结果:1234(死循环)
                      or  if(i==5)
                         break       结果:1234(循环结束)

当然 do while循环不管条件如何一定会执行一次


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值