在 if-else 块之外返回变量值
Returning a variable value outside if-else block
我想将 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;
但是,我不知道如何让子午线从 if else 块中"逃脱"。它的范围太小了。如何在 if-else 块之外访问子午线的值?
if 语句块中变量初始化时的答案不会回答问题。
你需要在
if 块之外声明meridiem
。声明后,还需要使用 =
分配给meridiem
:
string meridiem; /*
^^^^^^^^^^^^^^^^ */
if (midHour <= 12)
{
midHour12 = midHour;
meridiem = "AM"; /*
^^^^^^^^^^^^^^^^ */
}
else
{
midHour12 -= 12;
meridiem = "PM"; /*
^^^^^^^^^^^^^^^^ */
}
否则,变量将超出结束括号的范围。
你应该
先声明meridiem
:
int midHour12;
string meridiem;
if(midHour <= 12)
{
midHour12 = midHour;
meridiem = "AM";
}
else
{
midHour12 = midHour - 12;
meridiem = "PM";
}
cout << meridiem;
或者,如果您以后不需要meridiem
,只需打印midHour12
,然后在if-else中打印"AM"或"PM">
您必须在 if-else 块之前声明meridiem
,因为在 {...} 中声明的变量只能从块内部看到。
string meridiem;
int midHour = 15;
int midHour12 = midHour - 12;
if(midHour <= 12)
{
midHour12 = midHour;
meridiem = "AM";
}
else
{
midHour12 = midHour - 12;
meridiem = "PM";
}
cout << midHour12 << meridiem;
c++11 lambda 答案只是为了好玩:
#include <string>
auto currentTime = [](int midHour)
{
return (midHour <= 12) ? std::to_string(midHour) + "AM" : std::to_string(midHour - 12) + "PM";
}
cout << currentTime(15);
相关文章:
- 使用变量值作为 PlaySound 中的路径
- 通过指针偏移量访问结构变量值
- 变量值在 C++ 中的 glutIdleFunc() 中未递增
- 更新 #ifdef 中的现有变量值?
- 尝试更改 main 函数内的全局变量值时出现编译错误 C++.
- 通过 Rcpp 和 bit64 R 包将最大的int64_t变量值从 C++ 传递到 R
- 如何使用 IRBuilder 更新 LLVM IR 中的全局变量值?
- 更改已在运行的程序的变量值
- 在 Xcode 中使用后对外部变量值进行初始化
- C++整数变量值
- 变量值,在三元运算符之后
- 无法赋值,因为函数'operator[]'返回常量值
- 如何获得对不同类的引用,以便从所述类内部获得变量值
- Java应用程序的JNI-c++变量值
- 如何固定从传感器获得的变量值
- 离开方法时重置变量值
- 打印具有通用特定变量值的类对象
- 如何从高性能的输入迭代器返回变体?
- 返回未返回变量值
- 在 if-else 块之外返回变量值