广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言控制语句之 循环
  • 285
分享到

C语言控制语句之 循环

2024-04-02 19:04:59 285人浏览 八月长安
摘要

入口条件循环:while循环 在执行多次循环之前之就已经决定是否执行循环 代码格式: while(关系表达式) 语句 //可以是以分号结尾的简

入口条件循环:while循环

在执行多次循环之前之就已经决定是否执行循环
代码格式:


while(关系表达式)
	语句                  //可以是以分号结尾的简单语句,也可以是用花括号括起来的复合语句。

关系表达式的结果有真(非0)执行假(0)不执行两种状态

在这里插入图片描述

所以,我们发现while循环的终止条件很重要,要实现终止就必须让测试表达式的值产生变化,直到为假。while循环才可终止,否则,没有人为干预,它就不会停止(后面会学到使用if和break语句来终止循环,现在先不说

看下面代码:


#include <stdio.h>
#include <windows.h>
int main(){
    int a=1;
    while (a<2)
    {
        printf("破军:攻击+200\t");
        Sleep(100);
    }
   return 0; 
}

这就是写了一个不能终止循环条件的结果,还好我加了睡觉函数😥,就这我平时风扇不转的电脑转了起来谨慎谨慎!!!

在这里插入图片描述
在这里插入图片描述


何时循环终止呢? 要明确一点,只有在测试条件为假时,也就是需要让条件动起来(easy)比如循环体加一个a++,也可以在测试条件的地方加,等等……好,🆗


入口条件


#include<stdio.h>
int main(){
    int i=2;
    while (i++<1)
    {
        printf("执行了");
    }    
}

上面代码,我们一读就会发现2本就不小于1,况且i++,所以说不满足没有进去的机会,这就是入口条件



#include <stdio.h>
int main(){
    int i=1;

    while (i++ < 7);
        printf("i的值=%d\n",i);

    return 0;
    
}

在这里插入图片描述

这个代码,while条件后面直接分号,其实就是空语句,它什么也不做,意思就是循环体是空语句,最后程序结束的条件i=8,理解理解。
只有在测试条件后面单独语句(简单语句或复合语句)才是循环部分


入口条件循环:很牛的for循环


重点理解⭐⭐⭐

  • for把(初始化,测试和更新)组合在一起处理
  • for中的表达式也叫控制表达式,他们都是完整的表达式,所以副作用都发生在对下一个表达式求值之前。
  • 可以省略一个或多个表达式(分号不能省哦),只要在循环体中包含能结束循环的语句即可。
  • 第一个表达式不一定必须是给变量赋值,也可以使用printf();

语法格式
for(i=1;i<=100;i++){
	循环体
}

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

#include<stdio.h>
int main(){
    int i;
    for ( printf("请输入,输入2我就结束了\n"); i != 2;)
    {
        scanf("%d",&i);
        printf("%d\n",i);
    }
   return 0; 
}

在这里插入图片描述


for(初始化表达式;测试表达式;更新表达式){
		//复合语句
}

初始化表达式在执行for之前只执行一次,然后比较测试表达式得出结果是0不执行1执行,接着更新表达式的副作用发生,遍历循环体,然后继续重复检查判断的步骤,直至测试表达式结果为0,退出循环


在这里插入图片描述


出口条件循环:do while循环

while和for都是入口条件循环,就是在循环之前检查条件,所以会有一次也不执行循环体的情况。因此,引入do while 先执行循环体,然后再去判断是否要进行下一次迭代,它能够使得程序至少执行一次。

代码格式:


do
	语句;
while(条件);

注意:do while 循环以分号结尾,do while适用于那些特殊的至少要迭代一次的程序。


真值问题

什么是真?
在C中,表达式一定有一个值,关系表达式也不例外。那么我们通过代码来让计算机自己说说它认为的真假指的是什么。


#include<stdio.h>
int main(){
    int a,b;

    a=(1+1==2);
    b=(1+1==1);
    printf("true = %d; false = %d",a,b);

    return 0;
}

在这里插入图片描述
原来如此!对C而言,表达式为真的值是1,表达式为假的值为0
由此,死循环就非常简单了,比如信息轰炸就可以通过死循环结合windows库来实现。是不是非常的easy呢。


while(1)
{
……
}

1被C视为真,其他值呢,继续通过代码来试试


#include<stdio.h>
int main(){
    int i=2;

    while (i)
    
        printf("%d is true\n",i--);
    printf("%d is false\n",i);

    i=-2;

    while (i)
    
        printf("%d is true\n",i++);
    printf("%d is false\n",i);
    
    
    return 0;
}

在这里插入图片描述
我们发现在C中好像真假就是非00,


#include<stdio.h>
int main(){
    int a=3;
    while (a)
    {
        printf("again");
        scanf("%d",&a);
    }
    return 0;
}

在这里插入图片描述
在这里插入图片描述


关系运算符和表达式比较

while循环经常依赖测试表达式作比较,这样的表达式被称为关系表达式,出现在关系表达式里的运算符叫做关系运算符

下面复习下C语言的所有关系运算符


<		//小于
>		//大于
>=		//大于或等于
<=		//小于或等于
==		//等于
!=		//不等于

关系运算符构造关系表达式,通过关系表达式的真假决定一些操作


两个库函数fabs()和abs()

fabs()是需要包括math库的,它是对浮点数取绝对值的函数
abs()是在stdio库中的,它是对整数取绝对值的函数

举个栗子:


#include<stdio.h>
#include<math.h>
int main(){
    double i = -3.12;
    int a=-3;
    printf("%f\n",fabs(i));
    printf("%d",abs(a));
    return 0;   
}

在这里插入图片描述


布尔类型_Bool

两种方法:
1.自己定义仿布尔型
2.C99为兼容c++,可以使用头文件,通过bool来使用布尔类型

1


#define TRUE 1
#define FALSE 0

#include<stdio.h>
int main(){
    _Bool a=1;
    _Bool b=2;
    _Bool c=0;
    _Bool d=-1;

    printf("a==%d   \n",a);
    printf("b==%d   \n",b);
    printf("c==%d   \n",c);
    printf("d==%d   \n",d);

    printf("sizeof(_Bool)==%d  \n",sizeof(_Bool));

    return 0;

}

在这里插入图片描述

2.


#include<stdio.h>
#include<stdbool.h>
int main(){
    bool a = true;
    bool b = false;
    printf("a==%d  b==%d\n",a,b);

    printf("sizeof(_Bool) == %d \n",sizeof(_Bool));

    return 0;
}

在这里插入图片描述


优先级

简单概括:

括号 > 单目 > 算术 > 移位 > 关系 > 赋值
遇到就记住就🆗了


其他赋值运算符

用右侧的值,根据指定的操作更新左侧的变量


a+=b		//a=a+b
a-=b		//a=a-b
a*=b		//a=a*b
a/=b		//a=a/b
a%=b		//a=a%b

好处:1. 代码紧凑 2.比较类似机器语言,这样书写代码执行效率高

逗号运算符

逗号运算符把两个表达式连接成一个表达式,并保证最左边的表达式最先求值
逗号运算符扩展了for循环的灵活性,以便在循环头中包含更多的表达式
逗号运算符并不局限于for循环中使用,只是在循环中最常用
任何表达式的后面加上了分号就是表达式语句
逗号也可以做分隔符

应用:


#include<stdio.h>
int main(){
    int a,b;
    for(a=2,b=3;b<10;a+=1)
	    b+=a;
    printf("%d",b);
}


如何选择循环

  • 首先,确定需要得是入口条件循环还是出口条件循环
  • 一般,当涉及初始化和更新变量时,用for循环比较好,而在其他情况下用while循环更好。
  • 还有,那个特殊的比如至少要循环迭代一次的选择 do while

嵌套循环

指的是一个循环内包含另一个循环。

嵌套循环常用于按行和按列显示数据,一个处理所有的列,一个处理所有的行。

内层和外层循环,简单说,外层循环动一下,内层循环遍历所有,外层再动一次,内层依旧遍历所有,外层结束,内层也就和结束。

通过简单的99感冒灵(),哦,不对,99乘法表来练练理解理解

99乘法表分析

大概实现这样
在这里插入图片描述
分析:

  • 想想打印一个直角三角形出来
  • 我需要嵌套for,第一个for用来显示行,一共有9行,第二个内层for打印列,我们观察99乘法表,第一行一列,对二行二列,以此类推……第九行九列,不难发现所以去哦只需要把它的判断和行联系起来,怎样的联系,只要小于等于行就🆗,
  • 然后我在打印每一列的时候加一个水平制表符(*4个空格的·长),最后内层循环结束后在内层循环外for循环内加上一个换行符,显示出9行。最后把打印的替换成运算就完事。实践起来吧

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

替换


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

基本OK,enn就用这个简单栗子深刻领会,你会收益很大

在这里插入图片描述

小结

循环是一个强大的编程工具,C中提供了,while , for , do while 三种循环学习完你将掌握C的全部循环体系,按入口出口可以分为两类,入口:while , for 出口: do while,在创建循环时,我们要注意循环的测试条件得能使得循环结束循环测试中的值在使用前已经经过了初始化确保循环体每次都有迭代更新的值清晰得认识三种循环得使用场景。此外,还有一些运算符,布尔值,优先级,库函数得零碎知识学习,它们也一样重要


在这里插入图片描述


想去新海诚的动漫里散个步,顺便吃个天。

到此这篇关于C语言控制语句之 循环的文章就介绍到这了,更多相关C控制语句内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言控制语句之 循环

本文链接: https://www.lsjlt.com/news/129965.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言控制语句之 循环
    入口条件循环:while循环 在执行多次循环之前之就已经决定是否执行循环 代码格式: while(关系表达式) 语句 //可以是以分号结尾的简...
    99+
    2022-11-12
  • C语言控制语句中循环的用法
    本篇内容主要讲解“C语言控制语句中循环的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言控制语句中循环的用法”吧!入口条件循环:while循环在执行多次循环之前之就已经决定是否执行循环代...
    99+
    2023-06-20
  • C语言之循环语句详细介绍
    目录前言while语句do...while语句for语句结语前言 C语言中的循环结构是程序中的一个基本结构。 循环结构可以使我们写很少的语句,让计算机反复执行某一过程。 C语言提供了...
    99+
    2022-11-12
  • Golang的循环语句和循环控制语句详解
    目录一、循环语句1. 普通循环1)语法2)举例2. 循环嵌套3. range循环二、循环控制语句1.Break-中断(跳出)循环1)中断(跳出)循环2)指定想中断(跳出)的循环(嵌套...
    99+
    2022-11-12
  • Oracle LOOP循环控制语句
    在PL/SQL中可以使用LOOP语句对数据进行循环处理,利用该语句可以循环执行指定的语句序列。常用的LOOP循环语句包含3种形式:基本的LOOP、WHILE...LOOP和FOR...LOOP。 LOOP...
    99+
    2022-10-18
  • C语言基础解析之分支与循环语句
    目录- if语句:if(表达式)悬空else问题- switch语句要注意的细节switch中的的default子句:- while循环语法结构- for循环语法结构- do whi...
    99+
    2022-11-12
  • C语言中的三种循环语句
    目录一、while循环二、do while 循环三、for 循环一、while循环 while即:首先检查启动循环的条件是否满足,当条件满足时,不断地重复循环体内的语句,直到不满足条...
    99+
    2022-11-12
  • python循环控制之break和continue流程控制语句
    目录1.流程控制语 break1.1while循环1.2for循环二、循环控制语 continue1.流程控制语 break 用于结束整个循环结构,直接退出整个循环 例: 用两种循环...
    99+
    2022-11-13
  • C语言循环控制入门介绍
    目录循环控制:for 循环while 循环do while 循环switch casebreak:continue:break continue 区别:总结循环控制: for 循环 ...
    99+
    2022-11-12
  • C语言进阶教程之循环语句缺陷详析
    目录前言1 循环语句的三要素2 使用不同循环语句实现六种排列组合2.1 第一种排列(ABC)2.2 第二种排列(ACB)2.3 第三种排列(BCA)2.4 第四种排列(CBA)2.5...
    99+
    2022-11-12
  • 从头学习C语言之for语句和循环嵌套
    目录for语句:前言:注意事项:语句形式:执行顺序:示例:循环嵌套:语句形式:流程图:示例:总结for语句: 前言: 循环的基本结构离不开三个基本动作: 初始化计数器循环条件更新计数...
    99+
    2022-11-13
  • python练习之循环控制语句break与continue
    前言: 循环中通过break语句会立刻终止并跳出循环语句。break就像是终止按键,不管执行到哪一步,只要遇到break,不管什么后续步骤,直接跳出当前循环。 例题1:计算阶乘 例...
    99+
    2022-11-11
  • C语言超细致讲解循环语句
    目录C语言循环家族while循环for循环dowhile循环C语言循环家族 家族成员有while语句,for语句和do....while语句。这些成员都能实现循环,但又各有特点。今天...
    99+
    2022-11-13
  • C语言中循环语句练习实例
    计算n的阶乘 int main() { int i=0; int ret=1; scanf("%d",&i); for(i=1;i<=n;i++) { ret=ret*...
    99+
    2022-11-12
  • 深入了解c语言的循环语句
    目录C语言循环语句while循环for循环do......while循环的嵌套总结:C语言循环语句 大多数人都希望自己是体格强健,天资聪慧,多才多艺的人。虽然有时事与愿违,但至少我们...
    99+
    2022-11-12
  • C语言while循环语句怎么使用
    while循环语句在C语言中的使用方式如下:1. 基本语法:```while (条件表达式) {循环体语句;}```其中,条件表达式...
    99+
    2023-08-18
    C语言 while
  • 3 C语言 流程控制 循环 跳转
    3 C语言 流程控制 循环 跳转选择: if switch循环   while,do while ,for ,嵌套 跳转 break goto continue 学习目标u掌握选择结构语句u掌握循环结构语句前面的章节一直在介绍C语言的基本语...
    99+
    2023-01-31
    跳转 流程 语言
  • 头歌Java语言之控制语句
    第1关:if-else语句 - 绩点计算 本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下: decompose()方法将传入一个变量score,表示小明的课程的成绩。 输...
    99+
    2023-10-09
    java c++ 算法
  • JavaScript中有哪些循环语句和流程控制语句
    这篇文章将为大家详细讲解有关JavaScript中有哪些循环语句和流程控制语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。循环语句众所周知,常用的循环语句...
    99+
    2022-10-19
  • 怎么深入了解c语言的循环语句
    怎么深入了解c语言的循环语句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C语言循环语句大多数人都希望自己是体格强健,天资聪慧,多才多艺的人。虽然有时事与愿违,但至少我们用...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作