C++ 我的c++;数组值don';不想改变,它输出无限循环
通常,如果第[num]行为'>',它必须向num添加1才能传递到数组的下一个字符,并且必须输出相应的字符,但它会无限次地输出符号'>'。为什么?C++ 我的c++;数组值don';不想改变,它输出无限循环,c++,arrays,loops,C++,Arrays,Loops,通常,如果第[num]行为'>',它必须向num添加1才能传递到数组的下一个字符,并且必须输出相应的字符,但它会无限次地输出符号'>'。为什么? //part of the code line[] = {'>', '>', '#'}; circuit = line[num]; while(true) { if(circuit == '>') { num++; //add 1 to num
//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;
}
//代码的一部分
行[]={'>','>','#'};
电路=线路[num];
while(true)
{
如果(电路=='>')
{
num++;//将1添加到num
cout在您的循环中,您永远不会更新电路
。因此它将永远使用相同的字符循环并执行相同的if分支
也不清楚num
是否在某个地方初始化。此外,还不清楚如何找到数组的结尾
<> >最好将行<代码>字符串> >考虑循环:
for (int i=0; num<line.size(); i++) {
circuit=line[i];
...
}
for(int i=0;num声明circuit=line[num];
然后更新num,但不更改已定义的circuit的值。在if语句中,可以执行circuit=line[num++];
,执行以下操作
num++;
circuit = curcuit[num]
或者保留现有内容,并在满足任何条件之前将curcuit=curcuit[num]放在while循环的最顶端
`您缺少部分代码。此外,您是否在调试器中逐步完成了此操作,以查看自己发生了什么情况?将circuit=line[num]
放入while循环circuit=line[num];
是一次性赋值。它不会在circuit
和line[num]之间建立关系
。因此,当您稍后更新行
或num
时,这不会改变电路
。创建一个