为什么我的循环只执行一次

Why does my loop execute once only?

本文关键字:一次 执行 我的 循环 为什么      更新时间:2023-10-16
#include <iostream>
#include <windows.h>
using namespace std;

int go_to(int x, int y)
{
  COORD c;
  c.X = x - 1;
  c.Y = y - 1;
  return  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void main(){
  int a=1;
  while(a<10){
    a++;
    cout<<"work"<<endl;
    go_to(3,6);
    cout<<"work"<<endl;
  }
}

我不明白为什么这个循环只工作一次,也许你知道问题在哪里?我想这个问题是在Cord,但我不知道类似的方法使用Cord

变量a仅被a++;行修改,其值增加1,并且没有传递到go_to(x,y)中,因此不受该函数的影响。

你的循环肯定会运行值a={1到9},每次调用go_to(3, 6),也打印工作两次。

你的循环在每次迭代中都做同样的事情,所以你根本无法判断它运行了很多次。

变化

while(a<10){ 
   a++; 
   cout<<"work"<<endl; 
   go_to(3,6); 
   cout<<"work"<<endl; 
} 

while(a<10){ 
   a++; 
   cout<<"work"<<endl; 
   go_to(a,a*2); 
   cout<<"work"<<endl; 
} 

你会看到它实际上运行了多次

这些值永远不会改变。

while(a<10){
    a++;
    cout<<"work"<<endl;
    go_to(3,6);
    cout<<"work"<<endl;
  }

请尝试这样做:

for(int a = 0; a < 10; a++{
        cout<<"work"<<endl;
        go_to(a + 3,a + 6);
        cout<<"work"<<endl;
      }

这样你的值就会改变