gpt4 book ai didi

c++ - 使用 If 语句处理 boolean 值

转载 作者:太空狗 更新时间:2023-10-29 23:22:53 26 4
gpt4 key购买 nike

我是一名学生程序员,目前正在使用 Qt 为我的公司设计 GUI,我有一个相当简单的问题,我似乎无法在网上找到答案。似乎之前有人不得不问过它,所以如果您知道答案在哪里,我很乐意提供引用。我的问题是;可以使用 if 语句处理 C++ 中的 boolean 数据类型吗?所以 bool 值要么是 1 要么是零所以你可以做这样的事情吗

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();

然后 returnValue 变量将包含一个 boolean 值,该值等同于 trueOrFalse() 函数返回的值。

函数本身并不“保存”该值,函数的调用者定义了一个变量,该变量将在函数调用完成后保存该值。


关于你的第二个问题,你正确地使用了return语句,但是你可以在trueOrFalse()函数中简化你的代码实质上。而不是这个:

   if (validate == true)
{
return true;
}
else
{
return false;
}

你只需要这个:

return validate;

因为validate局部变量已经是bool了!

这消除了根据 boolean 常量 (true) 检查 boolean 值的冗余,从而防止出现奇怪的错误并使代码更易于阅读和理解。

事实上,您可以在任何时候使用 boolean 值 (bool) 使用这种通用模式。与其将它们与文字 falsetrue 进行比较,您可以只写:

if (validate)  // test for truth
{
// do whatever...
}

if (!validate)  // test for falsity
{
// do whatever...
}

关于c++ - 使用 If 语句处理 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8844609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com