首页 > 其他分享 >【C语言的奥秘3】C语言中的控制语句第二弹

【C语言的奥秘3】C语言中的控制语句第二弹

时间:2024-11-20 23:44:43浏览次数:3  
标签:语句 int C语言 while 循环 奥秘 执行 表达式

一、循环语句

1、while循环

(1)、while循环的执行流程

while循环是当条件成立时进入循环体,当条件不成立则结束,不在进入到循环当中去。

值得注意的是,while循环在第一次执行时,会先判断循环条件是否为真。如果条件为真,则进入循环体执行语句;如果条件为假,则跳过循环体,直接执行循环后面的语句。

(2)、while循环中break的作用 

 

可以看出来在while循环中只要遇到break,就停止后期的所有的循环,直接终止循环。所以:while中的break是用于永久终止循环的。 

(3)、while循环中的continue 

 

可以看到输出到4之后不再有输出了,是因为当运行到i加到5就进入了if语句,运行了continue,结束了本次循环进入下一次循环此时i依然还是5所以还是进入if语句,这样就是光标一直闪着,由于i一直是5,没有达到while循环结束,就一直在运行。continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断 

2、for循环语句

(1)、for循环的执行流程

在for循环的第一次执行中,初始化表达式会被执行,用于设置循环的起始条件。例如,在for (int i = 0; i < 10; i++)这个循环中,int i = 0就是初始化表达式,它会在循环开始前执行一次,设置变量i的初始值为0。
接着是条件表达式的判断,它决定了循环是否继续执行。如果条件表达式为真(true),则执行循环体;如果为假(false),则退出循环。在上面的例子中,i < 10是条件表达式,只要i小于10,循环就会继续。
如果条件满足,则执行循环体,即循环中需要重复执行的代码块。循环体执行完毕后,会回执行i++进行变量修改,然后在到条件表达式进行下一次判断。
之后,每次循环都会跳过初始化表达式,因为初始化只在循环开始前执行一次。然后直接从条件表达式开始判断,如果条件仍然满足,则再次执行循环体,如此反复,直到条件不满足为止。

在上面的例子中,当i的值增加到10时,i < 10的条件不再满足,循环停止执行。

int i = 0;
//实现相同的功能,使用while
i=1;//初始化部分
while(i<=10)//判断部分
{
 printf("hehe\n");
 i = i+1;//调整部分
}
//实现相同的功能,使用for
for(i=1; i<=10; i++)
{
 printf("hehe\n");
}

(2)、for循环的语法

for(表达式1; 表达式2; 表达式3)

        循环语句;

表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。

(3)、for循环中break和continue的作用 

需要注意的是,如果循环体内有break语句,循环会立即终止,不再执行后续的迭代。如果有continue语句,则会跳过当前迭代的剩余部分,直接进入下一次迭代 。

(4)、for循环的省略 

#include <stdio.h>
int main()
{
     //代码1(for循环中的初始化部分,判断部分,调整部分是可以省略的。)
     for(;;)
     {
         printf("hello\n");
     }
    
    
    //代码2(这里打印100个hello)
    int i = 0;
    int j = 0;
    
    for(i=0; i<10; i++)
    {
        for(j=0; j<10; j++)
       {
         printf("hello\n");
       }
   }
    
    //代码3(这里打印10个hello)
    int i = 0;
    int j = 0;
    //如果省略掉初始化部分,这里打印10个hello,当第一次的j变量的for循环运行结束进行下一次的时候,由于初始化部分被省略,所以j还是10,就跳出循环,直到i变量的for循环结束后,运行终止。
    for(; i<10; i++)
   {
        for(; j<10; j++)
       {
         printf("hello\n");
       }
   }
    
 //代码4:使用多余一个变量控制循环
 int x, y;
    for (x = 0, y = 0; x<2 && y<5; ++x, y++)
   {
        printf("hello\n");
   }
 return 0;
}

 3、do...while()循环

(1)、do...while()循环的语法

do{

循环语句;

}while(表达式);

 do循环中表达式成真则继续运行下一轮循环,当表达式为假,则循环结束。可见do...while循环至少执行一次

 

(2)、 do...while()循环中break和continue的作用 

break结束循环,continue结束本轮循环进入到下一轮(几乎所有的循环情况中,这两者的作用都是如此)。

四、转向语句

1、goto语句

goto语句最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。下方举例:

for(...)
  for(...)
 {
    for(...)
   {
      if(disaster)
        goto error;
   }
 }
  …
error:
if(disaster)
    // 处理错误情况

如果不使用goto语句则需要定义一个辅助变量,用break语句依次跳出对应for循环,直到跳出到最外层。效率显而易见的低于goto语句。

但是goto语句属于无条件跳转语句,用于改变语句执行顺序。一旦滥用goto语句将会导致逻辑混乱,导致系统崩溃等问题!!!

2、return语句

int function(int a, int b)
{
	if (a > 0)return a;
	else if (b < 0)return b;
	else  return;
}

return的作用就是结束,跳转:结束本函数,跳转到外函数调用本函数的地方并带回返回值。


今天的分享就到这啦

标签:语句,int,C语言,while,循环,奥秘,执行,表达式
From: https://blog.csdn.net/2402_88991786/article/details/143927702

相关文章

  • C语言常用语句总结
    一:常用函数1、putchar函数:putchar函数(字符输出函数):向终端输出一个字符。一般形式为:        putchar(c)  //   输出字符变量c的值。        ==    printf(“%c”,c)2、getchar函数getchar函数(字符输入函数):从终端输入一个字符。getchar函数没......
  • 5.C语言数组(上)
    文章目录一、数组的概念二、一维数组的创建和初始化2.1数组的创建2.2数组的初始化2.3数组的类型三、一维数组的使用3.1数组下标3.2数组元素的打印3.3数组的输入四、一维数组在内存中的存储五、sizeof计算数组元素的个数六、二维数组的创建6.1二维数组的概念6.2......
  • C语言编程常见问题总结
    1、返回值处理①被调函数执行结果对业务有影响,调用者没有处理返回值:可能导致空指针访问、缺少回退处理(资源泄露)②处理函数的返回值不准确:返回值数据类型被错误转换,返回值比较的目标不是函数的返回值系列 2、断言的使用①在断言中包含了非逻辑表达式②对程序运行中可能发......
  • 泷羽sec学习--Shell编程之条件判断语句
    学习内容来自B站UP:泷羽sec微信公众号:泷羽sec1.基本概念在Shell脚本中,if​语句用于条件判断。它允许脚本根据不同的条件执行不同的代码块。这在自动化任务、系统管理等场景中非常有用,比如根据文件是否存在来决定是否进行备份操作。2.基本语法结构单分支if​语句:格式......
  • 2个月搞定计算机二级C语言——真题(12)解析
    1.前言本篇我们讲解2个月搞定计算机二级C语言——真题122.程序填空题2.1题目要求2.2提供的代码#include<stdio.h>#defineN3intfun(int(*a)[N]){inti,j,m1,m2,row,colum;m1=m2=0;for(i=0;i<N;i++){j=N......
  • C语言:数组的学习
    1.什么是数组?数组是一组相同类型元素的集合。数组可以存储1个或多个数据。数组中存储的数据的类型是相同的。数组分为一维数组和多维数组。变量和数组都是容器,变量只能存储一个数据,数组可以存储多个。2.一维数组创建和初始化存放在数组中的数据叫做数组的元素。数组是自......
  • 解锁AI文本生成奥秘:Greedy、Beam、Top-k、Top-p与温度控制策略全揭秘
    InferenceStrategy(推理策略)推理策略(InferenceStrategy)是指在生成模型(如Transformer、GPT等)进行文本生成或预测时,决定每一步选择的输出(Token)的方法。不同的推理策略对生成的结果有着显著影响,主要体现在输出的质量、多样性、生成速度等方面。以下将深入探讨常见的推理策......
  • C语言第14节:字符函数和字符串函数
    1.字符分类函数C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。这些函数的使用都需要包含一个头文件是<ctype.h><ctype.h>头文件中的字符分类函数提供了一组用于检查单个字符特性的函数。这些函数接收一个字符(通常为int类型的char值),返回......
  • 经典C语言代码——part 4(素数问题)
    【程序10】题目:打印楼梯,同时在楼梯上方打印两个笑脸。 1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。2.程序源代码:#include"stdio.h"main(){inti,j;printf("\1\1\n");/*输出两个笑脸*/for(i=1;i<11;i++){for(j=1;j<=i;j++)printf......
  • 函数语句块
    Scope函数生存期,全局变量作用域Bash#!/bin/bash##bash:bash宿主存在内部命令var="helloworld"functionfunc{echo$varfunvar="hellofunc"localfuncvar2="hellofunc2"}func#可以访问全局变量echo$funvar#可以访问函数变量echo$funcvar2#无法访问......