蓝鸥C语言学习第三天

今天主要学习了循环结构

循环结构1-while循环

 

格式如下:

1 while ( 条件 )
2 {
3     语句1;
4     语句2;
5     ....
6 }

1)如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容)。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环

2)while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行

例如:

 1 /*
 2 输出十次hello world
 3 */
 4 int main(){
 5
 6     int  i = 0;
 7
 8     while (i < 10) {
 9
10         printf("Hello world!----%d\n",i);
11         i++;
12
13      }
14
15 }

如果省略第11行的i++,count就一直是i,那么i<10一直都是成立的,这个while循环将会陷入“死循环”,一直在重复执行第10行代码。

循环结构2-do while循环

格式如下:

1 do {
2     语句1;
3     语句2;
4      ...
5 } while (条件);

1)注意第5行,后面是加上一个分号;的

2)当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环

3)do-while循环的特点:不管while中的条件是否成立,循环体中的语句至少会被执行一遍

4)其实do while循环的用法跟while循环是差不多的,这里就不举例子了。

循环结构3-for循环

for循环是所有循环结构中最复杂的。

1 for (语句1; 条件; 语句2) {
2     语句3;
3     语句4;
4     ...
5 }

1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1

2)接着判断条件,如果条件成立,就会执行循环体中的语句(“循环体”就是for后面大括号{}中的内容)

3)循环体执行完毕后,接下来会执行语句2,然后再次判断条件,重复上述过程,直到条件不成立就结束for循环

例如 :

 1 int main(){
 2 /*
 3 利用循环输出:
 4   1
 5   1 2
 6   1 2 3
 7  */
 8     for (int i =1 ; i <= 3; i++) {
 9        for (int j = 1; j <= i; j++) {
10             printf("%d ",j);
11         }
12         printf("\n");
13
14     }
15
16     return 0;
17 }

输出结果为:

1
1 2
1 2 3

需要注意的是:变量i的作用域是第8~14行。一旦离开了这个第一层for循环,变量i就失效了,变量j的作用域是9~11行,一但离开内部for循环,变量j就失效了。

总结:

1.for最常用,通常用于知道循环次数的循环。

2.while也很常?,通常用于不知道循环次数的循环。

break和continue

1.break

前面在switch语句中已经用到了break,它的作用是跳出switch语句。它也可以用在循环结构中,这时候它的作用是跳出整个循环语句。

这里以for循环为例子,break也可以用在while循环、do-while循环中。

1 for (int i = 0; i<5; i++) {
2     printf("i=%d \n", i);
3
4     if (i>2) {
5         break;
6     }
7 }

上面代码的意思是当i>2时,就跳出整个for循环,也就是结束for循环,所以输出结果是:

i=0
i=1
i=2
i=3

for循环嵌套

先来看一个for循环嵌套的例子,嵌套的意思就是:for循环内部又一个for循环

1 for (int x = 0; x<2; x++) {
2      for (int y = 0; y<2; y++) {
3          printf("x=%d, y=%d \n", x, y);
4      }
5  }

输出结果是:

 x=0, y=0
 x=0, y=1
 x=1, y=0
 x=1, y=1 

这个时候如果在for循环中加入一个break,那么这个break究竟是跳出里面还是外面的for循环呢?

1 for (int x = 0; x<2; x++) {
2      for (int y = 0; y<2; y++) {
3          printf("x=%d, y=%d \n", x, y);
4
5          break;
6      }
7  }

注意第5行的break,这个break的作用是跳出里面的for循环,并非外面的for循环。所以输出结果是:

x=0, y=0
x=1, y=0 

如果改变一下break的位置

1  for (int x = 0; x<2; x++) {
2      for (int y = 0; y<2; y++) {
3          printf("x=%d, y=%d \n", x, y);
4      }
5
6      break;
7  }

注意第6行的break,这个break的作用是跳出外面的for循环,并非里面的for循环。所以输出结果是:

x=0, y=0
x=0, y=1 

规律已经很明显了:break只会影响它所在的那个for循环

2.continue

continue只能使用在循环结构中,它的作用是跳过这一次循环,直接进入下一次循环。

这里以for循环为例子,continue也可以用在while循环、do-while循环中。

1 for (int x = 0; x<10; x++) {
2      if (x%2==0) {
3          continue;
4      }
5
6      printf("x=%d \n", x);
7  }

注意第2行,当x%2==0,也就是当x是2的倍数时,就跳过这次循环,不执行第6行语句,直接进入下一次循环。输出结果:

x=1
x=3
x=5
x=7
x=9 

跟break一样,continue只会影响它所在的那个for循环

时间: 2024-08-28 13:59:58

蓝鸥C语言学习第三天的相关文章

蓝鸥C语言学习第四天

今天主要学习数组,什么叫是数组呢? 数组:就是存放相同类型的若干变量的集合.数组属于构造类型. 一维数组的定义方式:类型  数组名[元素个数] = {元素1, 元素2, .........}; int a[5]; 注意:[]只能放在数组名的后面,下面的都是错误写法: 1 int a[5] a;// 错误 2 int[] b; // 错误 **[]里面的个数必须是一个固定值,可以是常量(比如7.10).常量表达式(比如3+4.5*7).绝对不能使用变量或者变量表达式来表示元素个数,大多数情况下不要

蓝鸥C语言学习第二天

今天主要学习了,if语言和switch语句,下面直接进入正题.C语言为我们提供了3种流程控制结构,分别为:顺序结构,选择结构,循环结构. 顺序结构:默认的流程结构.按照书写顺序执行每一条语句. 选择结构:对给定的条件进行判断,根据不同的结果执行不同的代码断. 循环结构:对给定条件成立的情况下,反复执行某一代码断. 3种流程图如下: 一.顺序结构 1 int main(){ 2 3 printf("hello world!\n"); 4 5 printf("I like iOS

蓝鸥零基础学习HTML5第九讲 兼容性三

蓝鸥零基础学习HTML5第九讲 兼容性三 1.兼容性7 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box { background: red; zoom:1; } .div { width:200px; height:200px; ba

蓝鸥零基础学习HTML5—html+css基础

蓝鸥零基础学习HTML5-html+css基础 一.课程目标 1.了解前端开发职位:2.掌握常用标签以及语义及用法:3.掌握常用css的特性,掌握基础布局技巧:4.掌握整站规划概念. 二.适用人群 零基础积极学习html5者 三.课程简介 本课程主要讲解了 html+css的基础知识,包括html模板.标签.css基础样式.布局.表格表单.整站等等,是进行前端开发的基础.Html+css是前端开发的基础,大部分前端开发工程都需要从html+css布局开始,html+css的基础非常重要,是前端开

蓝鸥零基础学习HTML5第六讲 CSS的常见样式

蓝鸥零基础学习HTML5第六讲 CSS的常见样式 CSS的常见样式 1.css文本样式的设置 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div { font-size:160px; font-family: "sans-Seri

蓝鸥零基础学习HTML5第八讲 样式布局二

蓝鸥零基础学习HTML5第八讲 样式布局二 1.定位的属性及特性 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style> #box1 { width:400px; height:400px; border:10px solid red; margin:0 auto; position: re

JavaScript--基于对象的脚本语言学习笔记(三)

事件处理器 1.一个数据校验表单的例程 <html> <head> <title>js练习</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> String.prototype.trim=function(){ r

蓝鸥零基础学习HTML5第九讲 兼容性五

蓝鸥零基础学习HTML5第九讲 兼容性五 1.兼容性13 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box { width:400px; } .left { float: left; } .right { float: right; width:400px; } </s

蓝鸥零基础学习HTML5第九讲 兼容性六

蓝鸥零基础学习HTML5第九讲 兼容性六 1.兼容性16 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box { width:200px; height:200px; border:1px solid #000; position: relative; } .box span