大家好,欢迎来到IT知识分享网。
作者主页:
lovewold_的博客_CSDN博客
文章主要内容:
基本循环结构;continue和break作用与区别;
emo一下:
人生就是一如既往的重复相同的事情,要想在生活中不断的发掘新东西无疑是困难的,只有当一如既往的重复一遍遍才能清晰认识到我们身处循环之中。
文章目录
目录
前言
循环结构是C语言中最为基础的,如何正确的使用循环,使用循环能做什么,什么时候我们来使用循环。读完本文希望您从零到一拥有它。
同时,程序的执行不是单一不变的,逻辑的运行需要分支以及循环相互协调,那么如何实现略微复杂的逻辑呢?
C语言循环结构
循环:
- 顺序执行语句序列
- 在满足某个条件之前反复执行一个语句序列
一、while循环
逻辑流程图:
语法格式:
while(条件判定式) { 逻辑代码块; }
- while是入口循环,即在进行循环前判定括号内的条件是否为真,真即可执行下列语句,假则不执行。
- 当构造一个循环时,需要给出限制条件在达到要求后跳出指令,否则循环不终止,进入死循环
实列:
打印6句hello。#include<stdio.h> int main() { int n = 1; while (n <= 6) { printf("hello\n"); n++; } return 0; }
这个例子中:
n<=6是循环条件,当n大于6时,循环停止。
n作为循环的计数器,起到控制循环起止和循环次数的作用
这也是预想控制循环次数多循环,可以称作记数循环:
计数循环:它们循环执行预先确定的次数。
- 必须初始化一个计数器
- 计数器与某个有限的值进行比较
- 每次执行循环,计数器的值都要递增或递减以逃离条件。
二、do()while循环
逻辑流程图:
语法格式:
do { 逻辑代码块: }while(条件判定式);
实例:
打印1-10
#include<stdio.h> int main() { int i = 1; do { printf("%d ", i); i++; } while (i<=10); return 0; }
- 共同点:do while语句和while语句总体上的功能是一样的,都是通过while()内条件判定来决定是否结束。
- 区别:代码执行顺序不一样,do while强调先执行后判断,代码至少得执行一次;while强调先判定后执行,代码可能一次也不会执行。
总的来说两者功能大差不差,区别在于执行判断先后顺序,do while目前日常使用较少,现阶段留心一下这点即可。
注意:
初学者特别注意while后的(;)符号不要遗忘
三、for循环
逻辑流程图:
语法结构:
for(变量初始化;条件判定式;变量更新) { 逻辑代码块; }
- 括号内变量初始化只执行一遍,往后不执行。
- 条件判定为真循环进行,为假跳出循环。
- 更新值后继续执行判断。
- 变量初始化可以使用逗号使多个变量初始化和多个变量更新表达式
循环复合语句
四、while、for嵌套使用
- 以多重循环体组成,单次外部循环内进行多次内循环。
- 循环可能需要一定的跳出条件—break
- 循环可能需要一些跳过特殊情况条件—continue
- 循环的执行始终需要中间计数器做循环控制,否则死循环
打印用“#”表示的3*3矩阵
#include<stdio.h> int main() { int i = 1; int j = 1; while (i <= 3)//外部循环打印三行内容 { j = 1;//初始化进入下次循环 while (j <= 3)//内部循环打印三列内容 { printf("#"); j++;//控制变量自增 } printf("\n");//换行 i++;//控制变量自增加 } return 0; }
对于一个内部循环和外部循环,需要注意的是始终需要中间量控制,因此进入循环前和出循环前需要对变量进行初始化和更新。
continue:
可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。
打印 3*3矩阵
#
- 利用continue处理中间的特殊情况
#include<stdio.h> int main() { int i = 1; int j = 1; while (i <= 3) { while (j <= 3) { if (i == 2 && j == 2) { j++; continue; } printf("# "); j++; } j = 1; printf("\n"); i++; } return 0; }
注意:绕过后是否对控制变量进行了更新,如果没有就会陷入死循环
break:
跳出整个循环体,不再进行循环
实例:
#include<stdio.h> int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //0~9 //打印数组的内容 int i = 0; for (i = 0; i < 10; i++) { if(i==5)//当下标为5的时候,跳出循环 { break; } printf("%d ", arr[i]); } return 0; }
break和continue区别:
前者跳出整个循环,后者跳出单个循环下面语句执行下列循环
可以通过上述相识的例子来理解一下
更换break成continue:
#include<stdio.h> int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //0~9 //打印数组的内容 int i = 0; for (i = 0; i < 10; i++) { if(i==5)//当下标为5的时候,跳出循环 { continue; } printf("%d ", arr[i]); } return 0; }
很显然跳过了下标为6的数组打印语句
总结
以上就是今天要讲的内容,本文仅仅简单介绍了循环基本用法,希望对大家有帮助,此外下篇文章主要讲述一下冒泡排序和二分查找的基本算法思维。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/149936.html