3个循环语句

目录

1.while循环  2.for循环  3.do-while循环 4.break和continue语句5.循环的嵌套


1.while循环

1.1 6.1 if和while的对比

if(表达式)
    语句;

while(表达式)
       语句;//如果循环体像包含更多的语句,可以加上大括号

你可以对比来看一下,具体写个代码吧
if语句

while语句

1.2while语句的执行流程

     1.3while循环的实践

练习:在屏幕上打印1~10的值
参考代码:
#include<stdio.h>
int main()
{
  int i=1;
 while(i<=10)
 {
   printf("%d",i);     //输出1~10个数字
   ++i; //等价与i=i+1  i+=1
 }
 return 0;
}     


1.4练习
 

输入一个正数,逆序的打印这个整数的每一位
例如:
输入:1234,输出4 3 2 1
输入:521, 输出1 2 5
1.要想得到n的最低位,可以使用n%10的运算,得到的余数就是最低位,如:1234%10得到4
2.要想去掉n的最低位,找出倒数第二位,则使用n=n/10操作就可以去掉最低位的,如:n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第二位3。
3.循环1和2两个步骤,在n变成0之前,就能得到所有的位。
参考代码:   
#include<stdio.h>
int main()
{
 int n=0;
 scanf("%d",&n);
 while(n)
 {
    printf("%d",n%10);
    n=n/10;
 }
  return 0;
}            
 

2.for循环

    2.1语法形式

for循环是三种循环中使用最多的,for循环的语法形式如下:
1 for(表达式1;表达式2;表达式3)
           语句;
表达式1用于循环变量的初始化
表达式2用户循环结束条件的判
表达式3用于循环变量的调整
 


    2.2for循环的执行流程

 


    2.3for循环的实践

练习:在屏幕上打印1~10的值
参考代码:

 
    2.4while循环和for循环的对比

 for和while在实现循环的过程中都有初始化、判断、调整这三部分,但是for循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候while循环的三个部分就比较分散,所以从形式上for循环要更优一些。

 

2.5练习


练习1:
计算1~100之间3的倍数的数字之和

3.do-while循环

3.1语法形式

在循环语句中 do while语句的使用最少,它的语法如下:
do
   语句:
while(表达式)
while和for这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;
而do while循环则是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。
 

3.2 do while循环的执行流程
  

在do while循环中先执行图上的语句,执行完语句,再去执行判断表达式,判断表达式的结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。
 

3.3 do while循环的实例

使用 do while 循环打印1~10的整数 

一般do while使用在循环体至少会被执行一次的场景下,所以较少一些。
 

3.4练习

输入一位正整数,计算这个整数是几位数?
例如:
输入:1234 输出:4
输入:12     输出:2
 参考代码:

这里并非必须使用do while语句,但是这个代码就比较适合使用do while循环,因为n即使是0,也是1位数
 

4. while循环中的break和continue


4.1break举例

#include<stdio.h>
int main()
{
    int i = 1;
    while (i <= 10)
    {
        if (i == 5)
            break;//当i等于5后,就执行break,循环就终止了
        printf("%d",i);
            i = i + 1;
    }
    return 0;
}

打印了1.2.3.4后,当i等于5的时候,循环在break的地方终止,不再打印,不再循环。
所以break的作用就是永久的终止循环,只要break被执行,break外的第一层循环就终止了。
那以后我们在循环中,想在某种条件下终止循环,则可以使用break来完成我们想要的效果。

4.2 continue举例
 

continue是继续的意思,在循环中的作用就是跳过本次循环中continue后边的代码,继续进行下一次循环的判断。
上面的代码,如果把break换成continue会是什么结果呢?
#include<stdio.h>
int main()
{
    int i = 1;
    while (i <= 10)
    {
        if (i == 5)
            continue;//当i等于5后,就执行continue,直接跳出continue的代码,去循环的判断的地方
                                          //因为这里跳过了i=i+1,所以i一直为5,程序陷入和死循环
        printf("%d",i);
            i = i + 1;
    }
    return 0;
}


到这里我们就能分析出来,continue可以帮助我们跳过某一次循环continue后边的代码,直接到循环的判断,进行下一次循环的判断,如果循环的调整是在continue后边的话,可能会造成死循环。
 

5. for循环中的break和continue


5.1break举例

其实和while循环中的break一样,for循环中的break也是用于终止循环的,不管循环还需要循环多少次,
只要执行到了break,循环就彻底终止,我们上代码。
 #include<stdio.h>
int main()
{
  int i=0;
  for(i=1;i<=10;i++)
  {
     if(i==5)
      break;
      printf("%d ",i);
  }
  return 0;
}

break的作用就是永久的终止循环,未来我们在某个条件发生的时候,不想再继续循环的时候,就可以使用break来完成。


5.2continue

 上面的代码,如果把break换成continue会是什么结果呢?
#include<stdio.h>
#include<stdio.h>
int main()
{
    int i = 0;
    for (i = 1; i <= 10; i++)
    {
        if (i == 5)
           continue;
        printf("%d ", i);
    }
    return 0;

运行1 2 3 4 6 7 8 9 10
 


所以在for循环中continue的作用是跳过本次循环中continue后的代码,直接去到循环的调整部分。未来当某个条件发生的时候,本次循环无需再执行后续某些操作的时候,就可以使用continue来实现。

在这里我们也可以对比一下while循环和for循环中continue的区别:

5.3 do while循环中的break和continue
 

do.while语句中的break和continue的作用和while循环中几乎一模一样,大家下列可以自行测试并体会。
 

6.循环的嵌套
 

前面学习了三种循环while,do while,for,这三种循环往往会嵌套在一起才能更好的解决问题,就是我们所说的:循环嵌套,这里我们就看一个例子。

6.1练习:

找出100~200之间的素数,并打印再屏幕上
注:素数又称质数,只能被1和本身整除的数字。
  

6.2题目解析:

1.要从100~200之间找出素数,首先得有100~200之间的数,这里可以使用循环解决。
2.假设要判断i是否为素数,需要拿2~i-1之间的数字去试除,需要产生2~i-1之间的数字,也可以使用循环解决。
3.如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
 

6.3参考代码:

#include<stdio.h>
int main()
{
    int i = 0;
    //循环产生100~200的数字
    for (i = 100; i <= 200; i++)
    {
        //判断i是否为素数
        //循环产生2~i-1的数字
        int j = 0;
        int flag = 1;
        for (j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                flag = 0;
                break;
            }
        }
    
    if (flag == 1)
        printf("%d ", i);
}
return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值