手写C语言之分支循环语句-语法详细版(10)

简介: 手写C语言之分支循环语句-语法详细版

前期我们介绍了while循环,将while循环的场景运用和各方面的具体案例总体的介绍一下,我们知道while循环的框架就是通过初始化、判断、递增循环进行,但是在实际的应用场景中,我们发现这样的语法并不是适用于所有的场景,那么我们再想有没有比较智能的结构将着三个重要的东西集成在一起呢?


for循环

那么就需要使用到for循环

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


这样一个语句就满足了初始化,判断和调整变量的功能,而且在实际的场景使用当中for循环也是经常被用到的。


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


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


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


使用for循环打印1-10以内2的倍数

首先,根据题目的要求我们知道范围是1-10,需要找到2的倍数,那么也就是等同于递增变量与2是否可以整除,我们可以使用到取余操作符,作为条件。


#include <stdio.h>
int main()
{
  int i = 0;
  int num_1 = 0;
  int num_2 = 0;
  for (int i = 1; i <= 10; i++)
  //这里使用后++,是因为它是先赋值再去运算,这样才能调用初始化的值
  //在for循环中一般都是使用的后++
  {
  //printf("%d", i);
  if (i % 2 == 0)
  {
    printf("%d\n",i);
    ++num_1;//注意这里使用前++,是因为它是先运算再去赋值
  }
  else
  {
    ++num_2;
  }
  }
  printf("一共有%d个2的倍数!",num_1);
  return 0;
}

image.png


注意,这里的前++,后++在编程中我们虽然用的较少,但是考试和笔试过程中,我们遇到的大多是这样的考点。

for循环-continue和break

我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。但是还是有些差异:

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

image.png


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

image.png


大体上,continue和break的思想是和while循环比较类似的,其中while循环的continue很有可能将循环弄成死循环,而for循环的continue是将其跳到for循环的调整部分。

for语句的循环控制变量


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

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

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



前面的是执行10次,编码风格让人一目了然,后面的代码虽然也是执行10次,但是需要我们去理解这个代码才可以明白,所以在编程过程中,推荐使用第一种,前闭后开的风格进行书写。


关于for循环的一些案例

for (;;)

{

 printf("王小王-123\n");

}



这里会出现死循环,因为没有判断条件,而且这样的代码在编程中很少会这样写,就算遇到也是在你的考试题目中出现。


int i = 0;
  int j = 0;
  int num = 0;
  //这里打印多少个王小王-123?
  for (i = 0; i < 10; i++)
  {
  for (j = 0; j < 10; j++)
  {
    printf("王小王-123\n");
    num += 1;
  }
  }
  printf("一共打印了%d个王小王-123!\n",num);



这里是在循环中嵌套了一层循环,那么最终会打印多少次呢?10*10?

image.png


//如果省略掉初始化部分,这里打印多少个王小王-123?
  for (; i < 10; i++)
  {
  for (; j < 10; j++)
  {
    printf("王小王-123\n");
  }
  }


image.png


为什么是10次呢?首先我们由于没有初始化i和j,那么导致第一次i进去也是0,j也是0,但是,这个时候j进入到了第二次的循环中,就在这个循环中打印了10次,当第二次进入循环时候,由于j没有被初始化,这个时候无法满足条件,所以就不能打印,最后就打印了10次!


int x, y;
  for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
  {
  printf("%d",y);
  printf("王小王-123\n");
  }



使用多余一个变量控制循环

真题演练

//请问循环要循环多少次?
#include <stdio.h>
int main()
{
  int i = 0;
  int k = 0;
  for (i = 0, k = 0; k = 0; i++, k++)
  k++;
  return 0;
}



看到这个代码,首先我们应该分析的是,哪里是初始化,哪里是判断条件,哪里是调整部分!日条件都无法满足,所以也就没有循环次数!还要注意的是这里是=不是==!


do…while()循环

do

循环语句;

while(表达式);



它和while循环的区别在于,一个是至少执行一次,也就是说无论条件是否满足,都将要执行一次循环体的内容。


image.png


do while循环中的break和continue


image.png

image.png

在C语言中,我们前期编程的时候,一定要多尝试,一旦语句的位置不同,那么结果也会有千差万别!


相关文章
|
4月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
94 5
|
1月前
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
51 19
|
1月前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
77 18
|
1月前
|
Serverless C语言
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
57 18
|
1月前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
52 13
|
1月前
|
存储 C语言
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
42 6
|
1月前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
56 5
|
1月前
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
50 4
|
4月前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
54 8
|
4月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
69 6

热门文章

最新文章