C++ 我的c++;数组值don';不想改变,它输出无限循环

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

通常,如果第[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;
        }
//代码的一部分
行[]={'>','>','#'};
电路=线路[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
时,这不会改变
电路
。创建一个