分支与循环(2)(下)

简介: 分支与循环(2)(下)

代码1

#include <stdio.h>
int main()
{
 for(;;)
 {
 printf("hehe\n");
 }
    //for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问题

代码2

#include<stdio.h>
int main()
{
  int i = 0;
  int j = 0;
  int n = 0;
  for (i = 1; i <= 10; i++)
  {
    for (j = 1; j <= 10; j++)
    {
      printf(" 哈哈 ");
      n++;
      printf("%d", n);
    }
  }
  return 0;
}

for循环也可以嵌套使用,i每次+1,j就要从1变成10,printf(" 哈哈 ");就要执行十次。

代码3

#include<stdio.h>
int main()
{
  int i = 0;
  int j = 0;
  int n = 0;
  for (; i <= 10; i++)
  {
    for (; j <= 10; j++)
    {
      printf(" 哈哈 ");
      n++;
      printf("%d", n);
    }
  }
  return 0;

我们可以看到他打印11个哈哈,这是什么原因呢,大家也可以打开VS的监控调试一下,就会发现当i=1的时候循环就结束,这是什么原因,现在我们来探讨一下

是因为当i等于0时,进入循环1,j等于0;进入循环2然后打印第一个hehe,j++等于1,再打印一个哈哈,直到j等于10,打印了10个哈哈,然后出循环2,这时i++等于1,走到循环2,这时由于没有对上一次的j进行初始化,这时的j等于11,不满足循环2,所以无法进入循环2,然后i++等于2,再走到循环2,又因为没有对j进行初始化,所以又不满足循环2的条件,所以呀,直到i++等于到11,都无法再进入循环2,所以这个代码只打印11 个哈哈。

讲到这里大家应该明白了吧

代码4

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

使用多种变量控制循环,多种条件控制

练习

问循环几次

#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就相当于为假,一次也不执行


do while

格式

do 
{
    语句:
}while(判断)

do while语句的特点,上去就是干,不管怎么样都会执行一次

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

打印1到9

do while 的break和continue

#include <stdio.h>
int main()
{
  int i = 0;
  do
  {
    if (5 == i)
      break;
    printf("%d\n", i);
    i++;
  } while (i < 10);
  return 0;
}

我们可以看到break的作用还是跳出循环,现在让我看看continue

#include <stdio.h>
int main()
{
  int i = 0;
  do
  {
    if (5 == i)
      continue;
    printf("%d\n", i);
    i++;
  } while (i < 10);
  return 0;
}

我们可以看到光标再闪,所以进入死循环,现在来解释一下原因

当我们i==5的时候,遇到continue,退到do开始,i的值一直不变,所以一直死循环。

今天的分享到这里结束了,如果有错误请大家指出,我们一起加油,也谢谢大家支持。




相关文章
|
8天前
|
程序员 编译器 C语言
分支和循环(一)
分支和循环(一)
|
8天前
|
C语言
分支和循环(二)
分支和循环(二)
|
2月前
|
C语言
分支和循环(2)
分支和循环(2)
35 3
|
2月前
|
C语言
分支和循环(1)
分支和循环(1)
22 0
|
2月前
|
Python
[重学Python] Day1 变量+分支+循环
[重学Python] Day1 变量+分支+循环
42 3
|
12月前
|
编译器 C语言
分支与循环(1)
分支与循环(1)
分支与循环(1)
|
8月前
|
程序员 编译器
分支与循环
分支与循环
|
12月前
|
编译器 C语言
|
12月前
|
C语言
分支与循环(3)
分支与循环(3)
|
12月前
|
C#
C#基础Ⅴ-顺序、分支、循环结构
C#基础Ⅴ-顺序、分支、循环结构