c++ - if语句返回0,是真假还是程序运行成功?
问题描述
首先,如果 return 0 语句被删除,我的程序将无法准确运行。所以我不明白这是什么意思。
其次,另一个问题是它不打印字符串“Accept 1-4 key only”。在最后。如果我按其他键(不是 1-4),程序停止并退出。当我将 if-else if 语句更改为 switch 时。它可以运行。我无法弄清楚程序中出了什么问题?
char key;
key = getchar();
fflush(stdin);//fpurge(stdin);
//1. play game
if (key == '1') {
if (Money >= 0.25) {
Money = Money - 0.25 + PlayGame();
}else {
printf("\nYou dont have enough money to play\n");
SaveGame (Money, "d:/SaveGame.txt");
return 0;
}
//2. Save game
}else if (key == '2') {
SaveGame (Money, "d:/SaveGame.txt");
//3. Cash out
}else if (key == '3') {
printf("Thank you for playing, you end with %.2f", Money);
remove("d:/SaveGame.txt");
return 0;
//4. Quit
}else if (key = '4') {
remove("d:/SaveGame.txt");
return 0;
//5. Wrong key
}else {
printf("Accept 1-4 key only.");
}
}while(1);
return 0;
}
解决方案
return 0
是在程序退出期间使用的一种编程约定,用于指示程序已执行且没有错误。另一方面,> 0
返回码表示遇到错误。
关于你的问题,if return 0 is removed, program cannot run
。这只是意味着您正在使用的函数期望返回一个整数,如下所示。
int main() {
....
}
如果愿意,也可以考虑使用switch/case语句代替if/else
. 另请注意,您的最后一个else if
. 应该是key == '4'
。
推荐阅读
- javascript - 如何使用 Javascript 将上传的音频转换为 Blob?
- javascript - 如何使用 Jest 和 Express 编写集成测试?
- python - 无法解析 modin 数据框中的一列 json 字符串(适用于 pandas)
- java - 读/写图像的问题
- r - 为什么形式函数在使用参数定义的函数上返回 NULL?
- r - R会话信息中的星号(*)符号
- python - 基本文件无法运行 -> 无法初始化设备 PRN
- javascript - 将谷歌标签管理器的标签片段放在 Angular 中的什么位置?
- php - 4张表之间的关系
- javascript - 如何使我的“TextArea”内容可见 HTML/Javascript