通常,如果line [num]为'>',则必须将num加1以传递到数组的下一个字符,并且必须输出相应的字符,但是它将无限输出符号'>'。为什么?
//part of the code
line[] = {'>', '>', '#'};
circuit = line[num];
while(true)
{
if(circuit == '>')
{
num++; //add 1 to num
cout << circuit;
} else if(circuit == '<')
{
num--; //substract 1 to num
cout << circuit;
} else if(circuit == '#')
{
break;
}
数字也是0。
答案 0 :(得分:0)
在循环中,您永远不会更新circuit
。因此,它将永远循环使用相同的字符并执行相同的if-branch!
不清楚num
是否在某处初始化。此外,还不清楚如何找到数组的结尾。
因此最好将string
行作为一行,并考虑如下循环:
for (int i=0; num<line.size(); i++) {
circuit=line[i];
...
}
请不要在索引中倒退:所以我用于探索字符和num作为总和
答案 1 :(得分:0)
您声明circuit = line[num];
,然后更新num,但不更改已定义的circuit的值。在if语句中,您可以执行circuit = line[num++];
,执行
num++;
circuit = curcuit[num]
或者保留您拥有的内容,然后在满足任何条件之前,将curcuit = curcuit [num]放在while循环的顶部。
`