我有理解这段代码的问题:
#include <iostream>
using namespace std;
void Print_numm(int numm){
cout<<numm;
if (numm<=4) {
Print_numm(numm+1);
}
cout<<numm;
}
int main() {
Print_numm(1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是1234554321.我理解递归直到它打印123455.但为什么编译器打印剩下的数字到1?编译器每次都会执行第二次"cout"吗?如果是这样的话它如何保持数字直到它们打印到5,然后打印剩下的数字?
这段代码的结果
items = ['j','ak',(4,5)]
tests = ['j','as',(4,5)]
for key in tests:
for item in items:
if item==key:
print key,'was found'
break
else:
print key,'not found'
Run Code Online (Sandbox Code Playgroud)
是:
j被发现
未找到
(4,5)被发现
和这块代码的结果
items = ['j','ak',(4,5)]
tests = ['j','as',(4,5)]
for key in tests:
if key in items:
print key+' was found'
else:
print key+' not found'
Run Code Online (Sandbox Code Playgroud)
是:
j被发现
没有找到
现在,问题是:第二个块中的为什么(4,5)在"测试"和"项目"中没有进行比较,而其中任何一个块的结果应该相同?它是"in"运算符的东西吗?