加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 使用If语句处理Bool值

发布时间:2020-12-16 10:46:08 所属栏目:百科 来源:网络整理
导读:我是一名学生程序员,目前正在使用Qt为我的公司设计GUI,我有一个相当简单的问题,我似乎无法在网上找到答案.似乎有人不得不提前问过它,如果你知道答案在哪里,我很高兴参考.我的问题是;可以使用if语句处理c中的布尔数据类型.因此bool值可以是1或0,所以你可以做
我是一名学生程序员,目前正在使用Qt为我的公司设计GUI,我有一个相当简单的问题,我似乎无法在网上找到答案.似乎有人不得不提前问过它,如果你知道答案在哪里,我很高兴参考.我的问题是;可以使用if语句处理c中的布尔数据类型.因此bool值可以是1或0,所以你可以做这样的事情

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 am时,我实际上返回了一个该函数将持有的值,或者我是否使用了不正确的关键字返回?一旦验证过去Id喜欢能够使用该功能来指示是否继续其他功能请保持我的批评建设性.作为一名学生,我只对改进感兴趣.

解决方法

无论何时调用函数,都会返回使用return语句返回的值.

因此,如果您在程序中的其他位置编写此代码:

bool returnValue = trueOrFalse();

那么returnValue变量将包含一个布尔值,该值等于trueOrFalse()函数返回的值.

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

至于你的第二个问题,你正确使用了return语句,但是你可以大大简化trueOrFalse()函数中的代码.而不是这个:

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

你需要的只是这个:

return validate;

因为验证局部变量已经是一个bool!

这消除了针对布尔常量(true)检查布尔值的冗余,这可以防止奇怪的错误进入并使代码更易于阅读和理解.

实际上,只要您使用布尔值(bool),就可以使用这种通用模式.你可以写下:而不是将它们与字面上的虚假或真实进行比较.

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

要么

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读