起因是:在自学python,看到了for循环,发现了一个奇怪的语法
for… else 上代码
for num in range(10, 20): # 迭代 10 到 20 之间的数字
for i in range(2, num): # 根据因子迭代
if num % i == 0: # 确定第一个因子
j = num / i # 计算第二个因子
print('%d 等于 %d * %d' % (num, i, j))
break # 跳出当前循环
else: # 循环的 else 部分
print(num, '是一个质数')
注意缩进: else对标的是for
换:(else 对标 if)
for num in range(10, 20): # 迭代 10 到 20 之间的数字
for i in range(2, num): # 根据因子迭代
if num % i == 0: # 确定第一个因子
j = num / i # 计算第二个因子
print('%d 等于 %d * %d' % (num, i, j))
break # 跳出当前循环
else: # 循环的 else 部分
print(num, '是一个质数')
-----------------------------------------------------手动分割线----------------------------------------------------
对嘛 这样输出一大堆才是我熟悉的语法呢
然后不禁感叹 这个语法还是有作用的呢
然后 这个功能拿js该怎么写?
以下为各种错误示范
哎 丢人丢到家了
for (i = 10; i < 20; i++) {
for (var j = 2; j < i; j++) {
if (i % j == 0) {
console.log(i + '=' + j + '*' + i / j)
} else {
console.log(i + '是质数')
}
}
}
????????
发生甚么事了? 我说怎么回事?
在我耗子尾汁之后 事情迎来了转机
for (i = 10; i < 20; i++) {
for (var j = 2; j < i; j++) {
if (i % j == 0) {
console.log(i + '=' + j + '*' + i / j)
break
} else {
console.log(i + '是质数')
}
}
}
哦 原来是没加break 那没事了 看结果
嗯~ 好起来了
==! 这个15是怎么回事
?????????????
TMD 再来
for (i = 10; i < 20; i++) {
for (var j = 2; j < i; j++) {
if (i % j == 0) {
console.log(i + '=' + j + '*' + i / j)
bol = false
continue
}else{
console.log(i + '是质数')
break
}
}
}
不对 这里面跳出的地方不对
不对啊 根本不需要跳出啊,需要把循环走完,一旦有一个满足条件就不是素数
然后
for (i = 10; i < 20; i++) {
var bol = true
for (var j = 2; j < i; j++) {
if (i % j == 0) {
console.log(i + '=' + j + '*' + i / j)
bol = false
continue
}
}
if (bol == true) {
console.log(i + '是质数')
}
}
哎~ 好歹是完成了
虽然这里面还有能补充的,比如:寻找因子只需要达到其自身一半即可
无所谓了 好歹给自己一个交代了
如果你读到这 恭喜你浪费了人生十分钟的时间
哎 上学的时候学的东西都还给老师了
临近年关 脑子也转不动了 离谱