C语言入门篇(四)上

简介: C语言入门篇(四)上

前言

  有的时候,我们可能需要多次执行同一块代码。

  一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。

  编程语言提供了更为复杂执行路径的多种控制结构。

  循环语句则允许我们多次执行一个语句或语句组。

1. for循环


1.1 语法

for(表达式1;表达式2;表达式3)
  循环语句;

表达式1为初始化部分,用于初始化循环变量的。

表达式2为条件判断部分,用于判断循环时候终止。

表达式3为调整部分,用于循环条件的调整。


如果判断部分省略,意味着判断恒真。


实例:使用for循环在屏幕上打印1-10的数字


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

for循环的执行流程图:

     85283269dc3ac75df64e49fbb3fdb46c_59ba0164a34c40dfae6ca04ad77f5d48.png

for语句只控制一条语句,控制多条语句要加{}。


1.2 break和continue在for循环中

//break 代码实例
#include<stdio.h>
int main()
{
  int i;
  for (i = 1; i <= 10; i++)
  {
    if (i == 9)
      break;
    printf("%d ", i);
  }
  return 0;
}

输出结果:

e6063a6f26f153f3c3a2b3fd88b3bb30_969426923980429c9d414bbe37c9128b.png

为什么到8就结束了?


break在for循环中的作用:


其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。

所以:for中的break是用于永久终止循环的。


//continue 代码示例
#include<stdio.h>
int main()
{
  int i;
  for (i = 1; i <= 10; i++)
  {
    if (i == 9)
      continue;
    printf("%d ", i);
  }
  return 0;
}

这段代码的输出结果又会是什么?

0a6e794a5de0795388c49beb32e39afd_a61d038694954ef7baae046d34de3a04.png

continue在for循环中的作用:


continue是用于终止本次循坏的,也就是本次循环中continue后边的优码不会再执行,

而是直接跳转到for语句的判断部分。进行下一次循环的入口判断。


1.3 for语句的循环控制变量

//前闭后开
int i=0;
for(i=1;i<11;i++)
{}
//两边都是闭区间
int i=0;
for(i=1;i<=10;i++)
{}

1.不可在for循环体内修改循环变量,防止for循环失去控制;

2.建议for语句的循环控制变量的取值采用”前闭后开区间写法。


1.4 一些for循环的变种

//代码1
for(;;)
{
  printf("hh\n");//无限循环打印hh
}
//for循环中的初始化部分、判断部分、调整部分可以省略。
//初始化和调整部分的省略就是啥都不做
//判断部分省略了,意味着判断是恒为真的
//建议不要随便省略
//代码2
int i=0;
int j=0;
for(i=0;i<10;i++)
{
  for(j=0;j<10;j++);
  {
    printf("hh\n");//打印10个hh
  }
}
//代码3
int i=0;
int j=0;
for(;i<10;i++)
{
  for(;j<10;j++)
  {
    printf("hh\n");//同代码2
  }
}
//代码4-使用多于一个变量控制循环
int x, y;
  for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
  {
    printf("hh\n");//打印两个hh
  }

下面这段代码会打印多少个hh?


#include<stdio.h>
int main()
{
  int i = 0;
  int j = 0;
  //i=0 1 
  for (i=0; i < 4; i++)
  {
    for (j=0; j < 4; j++)
    {
      printf("hehe\n");
    }
  }
  return 0;
}

1.5 练习

请问循环要循环多少次?


#include<stdio.h>
int main()
{
  int i = 0;
  int k = 0;
  for (i = 0, k = 0; k = 0; i++, k++)
  {
    k++;
    printf("hh");
  }
  return 0;
}

for循环可以嵌套使用:

407f38af6c06386ced6ad31baf744b8d_80683ca4504949a589f949711a616efd.png


2. while循环


2.1 语法

while(表达式)
  循环结构;

while语句执行的流程:

b051263881a8f2964dbb473270c761d7_110686d0ba3c48d0983fa81fd8945948.png      

     

实例:使用while循环在屏幕上打印1-10的数字

#include<stdio.h>
int main()
{
  int i = 1;//初始化
  while (i <= 10)//判断
  {
    printf("%d ", i);
    i++;//调整
  }
  return 0;
}


2.2 break介绍

#include<stdio.h>
int main()
{
  int i = 1;
  while (i <= 10)
  {
    if (i == 5)
      break;//(跳出)终止循环
    printf("%d ", i);
    i = i + 1;//i++;
  }
  return 0;
}

c17bb6b7fc0d7cba8eed9df291ddc563_d9ea9f8db84e43899753cc7a42e0eb92.png


相关文章
|
C语言
C语言入门篇(三)上
C语言入门篇(三)上
|
C语言
C语言入门篇(三)下
C语言入门篇(三)下
|
C语言
C语言入门篇(四)下
C语言入门篇(四)下
|
Rust 算法 安全
【RUST学习日记】第5课 变量和常量
【RUST学习日记】第5课 变量和常量
|
存储 程序员 编译器
程序环境和预处理 C语言入门到入土(进阶篇)(一)
程序环境和预处理 C语言入门到入土(进阶篇)(一)
程序环境和预处理 C语言入门到入土(进阶篇)(一)
|
编译器 Linux C语言
程序环境和预处理 C语言入门到入土(进阶篇)(二)
程序环境和预处理 C语言入门到入土(进阶篇)(二)
程序环境和预处理 C语言入门到入土(进阶篇)(二)
|
C语言 C++
《C语言深度剖析》第二章 符号详解 p1 C语言从入门到入土(进阶篇)(一)
本章节文章是作者通过观看《C语言深度剖析》等各种资料总结的精华,基础部分省略了不少,是为了让大家能够更加深入了解C语言的魅力!因为为了避免与之前的文章发生赘述,所以就直接讲作者认为的精华部分哈!现在正文开始!
《C语言深度剖析》第二章 符号详解 p1 C语言从入门到入土(进阶篇)(一)
|
Linux C语言 C++
《C语言深度剖析》第二章 符号详解 p1 C语言从入门到入土(进阶篇)(二)
本章节文章是作者通过观看《C语言深度剖析》等各种资料总结的精华,基础部分省略了不少,是为了让大家能够更加深入了解C语言的魅力!因为为了避免与之前的文章发生赘述,所以就直接讲作者认为的精华部分哈!现在正文开始!
《C语言深度剖析》第二章 符号详解 p1 C语言从入门到入土(进阶篇)(二)
(函数p2) C语言从入门到入土(入门篇)(三)
5. 函数的嵌套调用和链式访问 5.1 嵌套调用 5.2 链式访问 6. 函数的声明和定义 6.1 函数声明: 6.2 函数定义: 7. 函数递归 7.1 什么是递归? 7.2 递归的两个必要条件 7.2.1 练习1: 7.2.2 练习2: 7.3 递归与迭代 7.3.1 练习3: 7.3.2 练习4:
(函数p2) C语言从入门到入土(入门篇)(三)
(函数p1) C语言从入门到入土(入门篇)(二)
1. 函数是什么? 2. C语言中函数的分类: 2.1 库函数: 2.1.1 如何学会使用库函数? 2.2 自定义函数 3. 函数的参数 3.1 实际参数(实参): 3.2 形式参数(形参): 4. 函数的调用: 4.1 传值调用 4.2 传址调用 4.3 练习
(函数p1) C语言从入门到入土(入门篇)(二)