首页 > 解决方案 > 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;
}

标签: c++c

解决方案


return 0是在程序退出期间使用的一种编程约定,用于指示程序已执行且没有错误。另一方面,> 0返回码表示遇到错误。

关于你的问题,if return 0 is removed, program cannot run。这只是意味着您正在使用的函数期望返回一个整数,如下所示。

int main() {
  ....
}

如果愿意,也可以考虑使用switch/case语句代替if/else. 另请注意,您的最后一个else if. 应该是key == '4'


推荐阅读