c++ - 在 if-else block 外返回一个变量值

标签 c++

我想将 24 小时制转换为 12 小时制。

int midHour = 15;
int midHour12 = midHour - 12;
if(midHour <= 12)
{
    midHour12 = midHour;
    string meridiem("AM");
}
else
{
    midHour12 = midHour - 12;
    string meridiem("PM");
}
cout << midHour12 << meridiem;

但是,我不知道如何让 meridiem 从 if else block 中“逃脱”。它的范围太小了。如何在 if-else block 之外访问 meridiem 的值?

答案在 variable initialization within an if statement blocks不回答问题。

最佳答案

您需要在 meridiem if block 之外声明。您还需要在声明后使用 = 分配给 meridiem:

string meridiem;                                                               /*
^^^^^^^^^^^^^^^^                                                               */

if (midHour <= 12)
{
    midHour12 = midHour;
    meridiem = "AM";                                                           /*
    ^^^^^^^^^^^^^^^^                                                           */
}
else
{
    midHour12 -= 12;
    meridiem = "PM";                                                           /*
    ^^^^^^^^^^^^^^^^                                                           */
}

否则变量将超出结束括号的范围。

关于c++ - 在 if-else block 外返回一个变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17093171/

相关文章:

c++ - 关于使用返回的引用

c++ - 类似于 c++11 中的 boost::mpl::if_

c++ - 迭代 vector 返回相同的对象

c++ - 什么触发文件结束?

c++ - Eclipse CDT : nothing could be resolved?

c++ - 讨厌的链接错误

c++ - 使用 makefile 仅动态编译选定的文件

接收 JSON 并写入数据库的 C++ 应用程序

c++ - Linux 的输入键不可管理,我如何在 C++ 中绕过它?

c++ - 存储用于事件监听器注册的指针