【发布时间】:2022-07-29 07:43:37
【问题描述】:
如何在不再次运行函数的情况下获取函数返回的值?
例如:
int difficulty() {
char x;
while (true) {
if (kbhit()) {
x = getch();
if (x == '1' || x == '2' || x == '3') {
return x;
break;
}
}
}
cout << "done";
}
这个函数被调用:
void Move(){
if (HeadY >= Height-1 || HeadY <= 0 || HeadX >= Widht-1 || HeadX <= 0)
Lose = false;
char level=diffculty(); //**********
if(level=='2' || level=='3'){
for(int i=0;i<Ta_N;i++)
if(HeadX==Ta_X[i] && HeadY==Ta_Y[i])
Lose = false;
}
}
并在菜单函数中调用:
void menu(){
if(kbhit()){
x=getch();
if(x=='s' || x=='S'){
system("cls");
table();
while(Lose){
Line();
Input();
Move(); //***********
Sleep(50);
}
system("pause");
}
}
我只需要x 值来比较它,但它会再次运行代码??
【问题讨论】:
-
将返回值保存在变量
int xx = difficulty();中。然后每当您以后需要返回值时,只需使用变量xx。 -
也许您可以详细说明“再次运行代码”是什么意思?我不确定你的意思。在评估
x时,它肯定不会重新运行getch()。 -
请注意,除非您特别需要
getch(),否则请注意,包含conio.h会使您的代码 100% 无法移植到 Windows 以外的任何地方。 -
@kimo_liz 然后将其移出循环。如果您不希望某事多次发生,请不要将其置于循环中。没有更多的上下文,很难给出更具体的建议。
-
我做了,但变量保存在 for 循环中然后请显示您有问题的代码。您展示了代码的工作部分,并没有展示您需要修复的代码。
标签: c++