for循环

关于for循环的块级作用域问题总结(一)

爷,独闯天下 提交于 2020-01-25 11:10:40
最近有小伙伴问到关于for循环和作用域的问题,那么我们今天来总结 一下,遇到这样的问题应该如何解答,当for循环和异步操作又会产生奇妙的作用,今天先不进行总结 先看个正常的for循环吧 for ( var i = 0 ; i < 5 ; i ++ ) { console . log ( i ) } 1.这是个最简单的for循环的遍历,控制台将打印0,1,2 , 3,4 我们来将这个代码变动一下: for ( var i = 0 ; i < 5 ; i ++ ) { } console . log ( i ) ; 2.控制台将只打印5,这个原因是因为JavaScript中没有块级作用域导致的。对于有块级作用域的语言来讲,for语句初始化变量的表达式所定义的变量,只会存在于循环的循环境之中。而对于JavaScript而言,由for语句创建的变量i即使在for循环执行结束后,也依旧会存在于循环外部的执行环境中。 我们来继续变动一下: for ( let i = 0 ; i < 5 ; i ++ ) { } console . log ( i ) ; 3.我们把var改成了let,控制台报错i is not defined。 这是因为let是es6新增的语法,而let具有块级作用域的特点,这么一来let声明的变量只在它所在的代码块有效,所以在外部是访问不到的。 来源: CSDN 作者:

for循环,数字类型与字符串

守給你的承諾、 提交于 2020-01-25 00:44:00
for循环主要用于输出,一切可迭代的对象都可以用for输出 while循环 VS for循环 1.while循环:称之为条件循环,循环的次数取决于条件何时为False for循环:称之为...循环,循环的次数取决于数据的包含的元素的个数 2.for循环专门用来取值,在循环取值方面比while循环要强大,以后但凡 遇到循环取值的场景,就应该用for循环 for else for continue for break 用法与while相同不做赘述 for循环可以嵌套且外层for每循环一次意味着内层for代码块全部执行一遍 print输出默认换行,即end值默认为\n,我们可以通过修改end的值实现不换行 数字类型 1. 整型int 可以记录年龄、等级、号码等 2、定义方式 age=10 等效于age=int(10) 类型转换 int()可以将浮点型取整转化为整型,也可以将纯数字字符串转换为整型 同理:bin()可以将其他可转化类型转化为2进制 oct() 转化为八进制hex()转化为十六进制 int属于不可变类型 1. 浮点型float可以用来记录浮点型数据如 身高、体重、薪资等 2、定义方式 类型转换 等同于int类型且同样是不可变类型 字符串: 定义:str1 = 'angel' 其中单引号双引号都可,三引号还支持多行 在Python3中,所有的字符串都是Unicode字符串

for循环

谁说胖子不能爱 提交于 2020-01-24 16:32:12
"""语法: for item in 某个数据类型: 字符串、列表、元组、字典、集合等 代码块 循环次数由元素个数决定""" # s = "hello" # list_1 = [1, 2, 3] # dic_1 = {"age": "18", "name": "star"} # for item in s: # 遍历s里面的元素,然后赋值给item # print(item) # print("&&44") # for i in list_1: # print(i) # for i in dic_1: # 字典返回key # print(i) # for i in dic_1: # 字典返回value # print(dic_1[i]) # for i in dic_1.items(): # .items()返回键值队 # print(i) # # for i in dic_1.keys(): # .keys()返回键 # print(i) # # for i in dic_1.keys(): # .keys()返回键 # print(i) # for k, v in dic_1.items(): # 可以单独取出键值对的值 # print(k, v) # # """例题:利用for循环,完成列表里所有数字相加""" # list_2 = [1, 4, 5, 8, 3] # s =

世界上最快最简单的排序——桶排序

此生再无相见时 提交于 2020-01-24 15:38:03
今天又是无趣的寒假之中的一天,但是,我准备好好开始学习算法了,我是想每天至少学习一种算法,也不知道能不能坚持下来,反正先试试,万一呢?! 世界上有好多东西都是需要排序的 栗子one:给你一串在十以内的数字进行降序排列 最好就是在输入时就进行归类,可以设一个a[11]的数组,放进去,最后再通过循环输出 #include <stdio.h> int main() { int a[11],i,j,t; for(i=0;i<=10;i++) a[i]=0; //初始化为0 for(i=1;i<=5;i++) //循环读入5个数 { scanf("%d",&t); //把每一个数读到变量t中 a[t]++; //进行计数 } for(i=10;i>=0;i--) //依次判断a[0]~a[10] for(j=1;j<=a[i];j++) //出现了几次就打印几次 printf("%d ",i); getchar();getchar(); //这里的getchar();用来暂停程序,以便查看程序输出的内容 //也可以用system("pause");等来代替 return 0; } *--i和i--在循环中是一样的效果,但是--i会稍微快一点 *时间复杂度事O(m+n),因为 for(i=0;i<=10;i++)进行了m次, for(i=1;i<=5;i++)进行了n次,最后的双重循环进行了n

java-循环语句

ぃ、小莉子 提交于 2020-01-24 14:50:32
在java里面的循环语句大致分为四种:for循环、while循环、do...while循环和增强for循环。下面进行一一讲解。 for循环,for循环是java代码中最为常见的循环形式,其语法格式为: for(表达式1;表达式2;表达式3){   循环的代码块; } 表达式1:一般作为变量的初始化,定义变量,并赋初始化值。 表达式2:作为判断语句(条件语句) 表达式3:在循环的代码块运行结束之后,再运行的代码,一般作为改变变量的值。 for循环中的执行顺序:表达式1-->表达式2--> 循环的代码块-->表达式3 for循环的流程图: 事例代码1: 1 public void method_1(){ 2 //使用for循环,在控制台输出1到100的数 3 for(int i = 1;i <= 100;i++){ 4 //在控制台输出i,i即使从1一直到100 5 System.out.println(i); 6 } 7 } 上面的代码,一开始i的值为1,每次执行完,i自增1,根据判断条件,直到i大于100,才停止,没有停止之前,i一直增加并输出。 while循环: 定义变量并初始化值; while(表达式1){   循环的代码块;   表达式2(改变变量的值) } 注意:1)在使用while循环之前,一定要定义变量并初始化值,否则, 会报错。这个变量是在while的条件判断。 2

JS 数组循环遍历方法的对比

时光总嘲笑我的痴心妄想 提交于 2020-01-24 08:18:42
以下介绍比较简单,最好把代码复制到控制台敲一遍 原生for var arr = [1,2,4,6] for(var i = 0, len = arr.length; i < len; i++){ console.log(arr[i]) } forEach 语句 var arr = [1,5,8,9] arr.forEach(function(item) { console.log(item); }) for-in 语句 一般会使用for-in来遍历对象的属性的,不过属性需要 enumerable,才能被读取到. (关于enumerable,参见我的另一篇博客 defineproperty ) var obj = { name: 'test', color: 'red', day: 'sunday', number: 5 } for (var key in obj) { console.log(obj[key]) } for-of 语句 (ES 6) for-of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环 var arr = [{name:'bb'},5,'test'] for (item of arr) { console.log(item) } map 方法 (不改变原数组) map

《C++ Primer Plus》第五章习题与参考答案

有些话、适合烂在心里 提交于 2020-01-24 05:46:17
文章目录 5.8 复习题 5.9 编程练习 1,内容选自《C++ Primer Plus》(第6版)中文版,2017年1月河北第21次印刷版本 2,文章系笔者学习笔记,若有错误,欢迎指正 3,如有雷同,纯属巧合 5.8 复习题 1.入口条件循环和出口条件循环之间的区别是什么?各种c++循环分别属于其中的哪一种? 入口条件循环在进入入口循环体之前将评估测试表达式。如果条件最初为false,则循环不会执行其循环体。出口条件循环在处理循环体之后评估测试表达式。因此,即使测试表达式最初为false,循环也将执行一次,for和wihle循环都是入口条件循环,而do while是出口条件循环。 2.如果下面的代码片段是有效程序的组成部分,它将打印什么内容? int i ; for ( i = 0 ; i < 5 ; i ++ ) cout << i ; cout << endl ; 它将打印下面的内容: 01234 3.如果下面的代码片段是有效程序的组成部分,它将打印什么内容? int j ; for ( j = 0 ; j < 11 ; j + = 3 ) cout << j ; cout << endl << j << endl ; 它将打印下面的内容: 0369 12 4.如果下面代码是有效程序的组成部分,它将打印什么内容? int j = 5 ; while ( ++ j < 9 )

使用continue的注意事项

心不动则不痛 提交于 2020-01-24 03:37:18
for更适合用continue,因为for使用continue的时候变量自增自减能够正常进行,而对于while使用continue会导致变量的自增自减不能够正常进行,所以会导致死循环,无限循环 来源: CSDN 作者: qq_2276659092 链接: https://blog.csdn.net/qq_45696288/article/details/104072067

C语言循环

房东的猫 提交于 2020-01-23 20:38:59
C 练习实例1 #include<stdio.h> int main() { int i,j,k; printf("\n"); //此处巧妙的利用循环次数和四个相等的关系 for(i=1;i<5;i++) { // 以下为三重循环 for(j=1;j<5;j++) { for (k=1;k<5;k++) { // 确保i、j、k三位互不相同 if (i!=k&&i!=j&&j!=k) { //这样才能保证由内往外一层层的循环 printf("%d,%d,%d\n",i,j,k); } } } } } #include<stdio.h> //这样写就很没道理 int main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) { printf("%d,",i); for(j=1;j<5;j++) { printf("%d,",j); for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) { printf("%d\n",k); } } } } } #include<stdio.h> //九九乘法表 int main() { for (int i = 1; i < 10; ++i) { for (int j = 1; j < i+1; ++j) //内层循环以外层循环为循环次数 { printf("%d*%d=%d

for循环和while循环的区别?

隐身守侯 提交于 2020-01-22 21:32:53
在开发中,如果明确循环的次数,使用for循环 ;不明确循环次数,使用while循环 从内存角度考虑,for循环的格式for(初始语句;条件语句;步长语句){循环体语句…},for循环结束之后, {}中的变量值会及时从内存中释放掉,不会消耗内存空间!while循环结束,还可以去访问变量值,不会立即从内存中 释放掉,等待GC垃圾回收器(垃圾回收线程,也称为守护线程!)空闲时候回收! 开发中优先使用for循环 其次是while循环 来源: CSDN 作者: YaroDong 链接: https://blog.csdn.net/YaroDong/article/details/103772796