第十一课 for循环(3)---循环变量的变化

14 篇文章 21 订阅
14 篇文章 15 订阅

第十一课  for循环(3)---循环变量的变化

for循环流程】

      前面介绍的for循环语句,学习了简单控制循环次数的格式,一般形式为:

              for( int i=0;  i< N ; i++ )

           语句/复合语句;

 

在学习了if语句中的逻辑表达式概念后,再来分析for语句能更加明白它的工作原理。for语句的控制结构由2个分号“;”分为三部分:

for (1部分 ;2部分 ;3部分 )

   语句/复合语句;

 

通常:

l 1部分是循环变量定义和赋初始值(也叫初始化)的位置。

l 2部分是逻辑表达式,是循环执行的条件部分。一旦表达式为假,循环结束。

l 3部分一般是循环变量修改语句。

 

 
 

for语句的流程示意图:

 

如果循环3次,执行的次序为:

l 第一部分---                         (只执行1)

l 2部分---语句---3部分---         (1个循环)

l 2部分---语句---3部分---              (2个循环)

l 2部分---语句---3部分---         (3个循环)

l 2部分---                         (表达式为假,结束循环)

 

例如语句“for (int i=0; i < 3;i++ ) cout << i<<endl;”的执行过程为:

l i初始化为0

l 0<3”为真 --- 输出0 --- i增加1 --- i=1

l 1<3”为真 --- 输出1 --- i增加1 --- i=2

l 2<3”为真 --- 输出2 --- i增加1 --- i=3

l 3<3”为假 --- 结束循环

 

参见演示程序:for演示程序11A.exe

 

for循环变化】

C++语言中for语句的3个部分可以灵活变化,功能强大。下面简单介绍2种变化方法。

1for语句的第1部分变化。

      循环变量初始化的值不一定是0,可以是任意值。

 

例题11.1:输出所有是7的倍数的2位数:14,21, … ,98,每个数一行

分析:

题目描述中有两个关键点:

1.        所有2位数 --- 10111299

2.        7的倍数    ---除以7的余数为0

 

解题方法:用for语句的循环变量列举所有的2位数,再用if语句把7的倍数的数挑选出来。

样例程序11.1

图形

//prog:样例程序11.1

//author: teacher

//2015.10.28

 

int main()

{ 

  for(int i=10; i<100; i++)

    if( i%7==0) cout<<i<<endl;

  return0;  

}

====运行中... ====

14

21

28

35

42

49

56

63

70

77

84

91

98

====运行结束  ====

 

【拓展知识】

“把所有可能的数都列举出来,再一一判断,挑选出符合要求的数值。”这种方法在程序设计中经常使用,称为:枚举算法

 

2for语句的第3部分变化。

      循环变量的改变不一定是增加1,也可以是其它修改。常见的修改形式有:

形式

功能

举列

i++

i增加1

i=5;

i++;   //i变为6

i--

i减少1

i=5;

i--;   //i变为4

i += a

i增加a

i=5;

i+=3;  //i变为8

i -=a

i减少a

i=5;

i -= 3;   //i变为2

i *=a

ia

i=5;

i *= 3;   //i变为15

i /=a

ia

i=5;

i/=2;   //i变为2

i =运算表达式

i取表达式的值

i=5

i=3+2*i; //i变为13

 

 

例题11.2:画下面图形。图中最小边长是10,最大边长是200,边长每次增加10

         

 

样例程序11.2

图形

//prog:样例程序11.2

//author: teacher

//2015.10.28

 

int main()

{ 

  for(int i=10; i<=200; i+=10)

     pen.fd(i).rt(90);

  return0;  

}

 

 

例题11.3:找出下面数列“3 7  15  31 …”的规律,打印前面不超过10000的所有项。

分析:

后一项是前一项乘21,所以i的变化表达式为:i = 2*i + 1

 

样例程序11.3

图形

//prog:样例程序11.3

//author: teacher

//2015.10.28

 

int main()

{ 

  for(int i=3; i<=10000; i=1+2*i)

     cout<< i<<"  ";

  return0;  

}

====运行中... ====

3  7  15  31  63  127  255  511  1023  2047  4095  8191 

====结束运行  ====

 

【练习】

一、填空题。根据题目的任务,填空完善程序。

 

题目

程序

练习11.1

输出数列:3  4  5  6 … 88。相邻两个数之间用一个空格隔开。

//prog:练习11.1

//author: teacher

//2015.10.29


int main()

{ 

  for(int i=      ; i<=88;  i++)

     cout<< i<<" ";

  return0;  

}

练习11.2

输出数列:100  95  90  85 …   10 5。相邻两个数之间用一个空格隔开。

//prog:练习11.2

//author: teacher

//2015.10.29


int main()

{ 

  for(int i=100; i>=5;       )

     cout<< i<<" ";

  return0;  

}

练习11.3

输出数列:2  4  8  16 …  1024。相邻两个数之间用一个空格隔开。

//prog:练习11.3

//author: teacher

//2015.10.29


int main()

{ 

  for(int i=2; i<=1024;       )

     cout<< i<<" ";

  return0;  

}

 

 

练习11.4

输出数列:4, 5, 7, 11, 19, … , 8195。相邻两个数之间用一个空格隔开。

//prog:练习11.4

//author: teacher

//2015.10.29


int main()

{ 

  for(int i=4; i<=8195;      )

     cout<< i<<" ";

  return0;  

}

 

二、编程题

练习11.5:编程画出下面图形,三角形边长每次减少一半。

  

 

练习11.6:编程画出下面图形,正方形边长每次减少20

      

 

【学习目标】

(1)      理解for语句各个部分的作用和执行先后次序的流程图,。

(2)      掌握for语句的循环变量初始化。

(3)      学会用用各种逻辑表达式(有==,<,<=,>,>=等)作为循环结束条件。

(4)      掌握for语句的循环变量的多种修改方式。

 

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Python ,双重 for 循环变量可以通过使用 `zip` 函数实现。`zip` 函数可以将多个可迭代对象(如列表、元组等)对应位置的元素打包成一个元组,然后返回一个可迭代的 zip 对象。 下面是一个例子: ```python list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] for num, char in zip(list1, list2): print(num, char) ``` 输出: ``` 1 a 2 b 3 c ``` 在上述例子,我们使用了 `zip` 函数将 `list1` 和 `list2` 对应位置的元素打包成一个元组。在 `for` 循环,我们使用了两个变量 `num` 和 `char`,分别接收每个元组的第一个和第二个元素,然后进行打印。 如果需要使用更多的变量,可以继续在 `for` 循环添加变量。例如: ```python list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] list3 = [True, False, True] for num, char, boolean in zip(list1, list2, list3): print(num, char, boolean) ``` 输出: ``` 1 a True 2 b False 3 c True ``` 在这个例子,我们使用了三个变量 `num`、`char` 和 `boolean`,分别接收每个元组的前三个元素。 ### 回答2: Python的双重for循环变量是指在for循环语句使用多个变量来迭代遍历一个二维数组或多维数组的元素。 在Python,我们可以使用双重for循环来遍历一个二维数组。例如,我们有一个3x3的二维数组arr,可以使用以下代码来遍历它的元素: ```python arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] for row in arr: for element in row: print(element) ``` 在上面的代码,外层的for循环用于遍历arr的每一行,内层的for循环用于遍历每一行的元素。通过这种方式,我们可以依次访问arr的每一个元素,并进行相应的操作。 除了二维数组,双重for循环变量也可以用于遍历多维数组的元素。我们只需要使用相应数量的嵌套for循环即可。例如,对于一个3x3x3的三维数组arr,我们可以使用三重for循环来遍历它的元素: ```python arr = [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]], [[19, 20, 21], [22, 23, 24], [25, 26, 27]]] for layer in arr: for row in layer: for element in row: print(element) ``` 在上面的代码,我们使用三重for循环来依次遍历arr的每一层、每一行和每一个元素,并输出它们的值。 总之,通过使用双重for循环变量,我们可以方便地遍历二维数组或多维数组的元素,并对它们进行相应的操作。无论是二维数组还是多维数组,我们只需要根据数组的维度适当增加for循环的嵌套层数,就可以访问到所需的元素。 ### 回答3: Python的双重for循环变量是一种嵌套循环的结构,可以用来遍历多个可迭代对象的所有元素组合。 在双重for循环,外层循环控制的是第一个可迭代对象的遍历,内层循环控制的是第二个可迭代对象的遍历。每当外层循环执行一次,内层循环会完整地遍历一遍第二个可迭代对象。 例如,我们有两个列表A和B,想要找出它们所有的组合,可以使用双重for循环来实现: ``` A = [1, 2, 3] B = ['a', 'b', 'c'] for a in A: for b in B: print(a, b) ``` 上述代码会输出以下结果: ``` 1 a 1 b 1 c 2 a 2 b 2 c 3 a 3 b 3 c ``` 在每次迭代变量a会依次遍历列表A的元素,变量b会依次遍历列表B的元素,然后将它们打印出来。这样就能得到所有A和B元素的组合。 双重for循环变量还可以用于处理更多的可迭代对象,只需根据需要添加更多的嵌套循环即可。然而,需要注意的是,嵌套循环的层数过多可能会导致代码复杂度增加,执行效率下降。因此,在使用双重for循环时,需要根据实际需求和数据规模进行适当的折。 总结而言,Python的双重for循环变量是一种用于遍历多个可迭代对象的结构,可以简洁地获取它们的所有元素组合。当需要处理多个可迭代对象时,双重for循环是一种常用且强大的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值