使用If语句处理布尔值
Handling Bool Value With an If Statement
我是一名学生程序员,目前正在用Qt为我的公司设计GUI,我有一个相当简单的问题,我似乎在网上找不到答案。似乎以前有人问过这个问题,所以如果你知道答案在哪里,我很乐意提供推荐信。我的问题是;c++中的布尔数据类型是否可以使用if语句进行处理。所以布尔值要么是一,要么是零,所以你能做这样的吗
bool trueOrFalse()
{
myclass temp;
QString tempstr;
double candidate;
bool validate;
tempstr = ui->tableWidgetInjectionLocations->item(i,9)->text();
candidate = tempstr.toDouble(&validate);
if(validate == true)
{
temp.tempProperty = candidate;
}
else
{
QMessageBox error;
error.setText("Error");
error.exec();
}
if (validate == true)
{
return true;
}
else
{
return false;
}
}
我在这里真正想要的是这个bool函数的最后一节。当我使用return时,我是否真的返回了一个该函数将保持的值,或者我是否不恰当地使用了关键字return?一旦验证通过,我希望能够使用该函数来指示是否继续执行另一个函数。请保持我的批评具有建设性。作为一名学生,我只对进步感兴趣。
无论何时调用函数,都会实际返回使用return
语句返回的值。
因此,如果你在程序的其他地方写下这段代码:
bool returnValue = trueOrFalse();
则CCD_ 2变量将包含与CCD_。
函数本身并不"保存"值,函数的调用方定义了一个变量,该变量将在函数调用完成后保存值。
至于第二个问题,您正确地使用了return
语句,但您可以在trueOrFalse()
函数中大大简化代码。取而代之的是:
if (validate == true)
{
return true;
}
else
{
return false;
}
你只需要这个:
return validate;
因为validate
局部变量已经是bool
!
这消除了根据布尔常数(true
)检查布尔值的冗余,这可以防止奇怪的错误悄悄出现,并使代码更易于阅读和理解。
事实上,在处理布尔值(bool
)时,您可以随时使用此通用模式。与其将它们与字面上的false
或true
进行比较,您只需编写:
if (validate) // test for truth
{
// do whatever...
}
或
if (!validate) // test for falsity
{
// do whatever...
}
更换
if (validate == true)
{
return true;
}
else
{
return false;
}
带有
return validate;
没有理由测试它并返回不同的布尔值。
当你在做的时候,更换以前的
if (validate == true)
带有
if (validate)
相关文章:
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 变量定义到C++布尔值转换
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 重载更少,则运算符返回相反的布尔值
- 将此布尔值传递给此函数的最有效方法是什么?
- 如何设置 c++ 类的布尔值?
- 使用 MAKEWORD / MAKEWPARAM 使用布尔值而不是布尔值
- 将 10 个线程与原子布尔值同步
- 创建类似于布尔值的变量类型
- 布尔值向量的基于范围 for 循环
- 零点和布尔值之间的比较
- 简化对两个布尔值的 4 个 if/else 检查
- 无法创建带有布尔值和矢量的地图
- 对于完成布尔值设置为 true 后未停止的循环
- fstream / ifstream / ofstream 对象如何转换为布尔值
- C++:将值赋值给原始数据类型(例如布尔值)是原子操作吗?
- 关于如何在 cout 中处理布尔值的考试问题
- 在C++中,一元减号运算符如何处理布尔值
- 处理类中的布尔值
- 使用If语句处理布尔值