我想将 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/