Different
大约 2 分钟
Different
目录
结构化编程
块作用域
嵌套块重定义变量
- C/C++、js:可以在嵌套的块中重定义一个变量。在内层定义的变量会覆盖在外层定义的变量。
- Java:认为这样有可能会导致程序设计错误,因此在Java中不允许这样做。
流程控制(for、switch、elif)
for循环语句
- C语言、Java、js
for(exg1;exg2;exg3){ }
,分号分割不同操作,逗号可分割多个表达式
- Python
for i in list:
,for i in range(start,end[,step]):
switch条件判断语句
- Python
- 没有
switch
语句,其他语言几乎都有
- 没有
if-else条件判断语句
- C语言、Java、js
if - else if - else
- python
if - elif - else
高级循环
Java(Java SE 5.0新增)
for (int i=1; i<=10; i++) statement; // for for (variable:collection) statement; // foreach for (int element : a) System.out.println(element);
C++11 foreach
for (int i=1; i<=10; i++) statement; // for for (double x : prices) cout << x << std::endl; // 只能输出 for (double &x : prices) x = x*0.8; // 可以改变数组的内容
C++ QT
foreach (int, QList<int>) { /*process*/ }
Python
for i in range(start,end[,step]): # 基于次数循环 for i in list: # 基于迭代器循环 sum(i*i for i in range(10) # exp-for-in 生成器表达式(和列表初始化) [x^2 for x in range(10)] # exp-for-in 列表解析
JavaScript
for (int i=1; i<=10; i++) statement; // for array.forEach(function(element){/**/}); // foreach,回调匿名函数 array.forEach((element) => {/**/}); // foreach,回调箭头函数 var array = [1,2,3] array.filter((e) => {e=>e>2}) // filter [3] 返回布尔,可简写return array.map((e,i) => {return e*e}) // map [1,4,9] 映射 array.reduce((pre,next) => {return pre+next}) // reduce 6 将返回值重新赋值给pre
JavaScript Query
略
三目运算符
- C、Java、Js:
条件 ? true_exp : false_exp
- Python:
true_exp if 条件 else false_exp
遍历对象数据类型
Js遍历对象
- 方法上分类
- forEach遍历:
Object.keys(obj).forEach((key)=>{})
- for..in..遍历:
for(var k in obj) { }
(遍历键) - 其他:
Object.getOwnPropertyNames(obj)
,高级循环函数等方法
- forEach遍历:
- 键值对上分类
- 遍历对象键值对:遍历键,再循环中引用
obj[key]
为值 - 遍历对象键:
Object.keys(obj)
,for(var k in obj) { }
- 遍历对象值:
Object.values(obj)
- 遍历对象键值对:遍历键,再循环中引用
- 方法上分类
Python遍历字典
- 键值对上分类
- 遍历字典键值对:
for k,v in dict.items():
- 遍历字典键:
for k in dict.keys():
,for k in dict:
- 遍历字典值:
for v in dict.values():
- 遍历字典键值对:
- 键值对上分类
跳出多重嵌套
与C/C++不同:跳出多重嵌套
Java还提供了一种带标签的break语句,用于跳出多重嵌套的循环语句。有时候,在嵌套很深的循环语句中会发生一些不可预料的事情。
标签必须放在希望跳出的最外层循环之前,并且必须紧跟一个冒号
事实上,可以将标签应用到任何语句中,甚至可以应用到if语句或者块语句中。(可能可以用来模拟goto语句,但不建议那样做)