所以我试图使用这段代码来打印一个语句,如果它到达循环的末尾而没有在它之前的语句中调用break,这意味着程序得到匹配然后需要打印它。但是,我的if(k + 1 ...)语句永远不会被分支到总是被跳过。为什么会这样?
else {
cout << "test" << endl;
looklen = look.length();
for (j = 0;j < numdist;j++) {
for (k = 0;k < looklen;k++) {
//cout << "test2" << endl;
if (look[k] = '?') {
k++;
continue;
}
else if (look[k] != distinct[j][k]) {
break;
}
if (k + 1 == looklen) {
cout << "test3" << endl;
cout << look << " : matches " << distinct[j] << " " << distinctnum[j]+1 << " time(s)." << endl;
}
}
}
}
答案 0 :(得分:3)
if (look[k] = '?')
始终为真(因为它是一个赋值),这意味着始终执行continue。你可能意味着
if (look[k] == '?')
哪个是比较
答案 1 :(得分:0)
=
运算符用于分配值
==
运算符是有条件的
所以它一定是这样的:
if (look[k] == '?')