gpt4 book ai didi

C++ boolean 函数操作数

转载 作者:行者123 更新时间:2023-11-30 05:07:14 25 4
gpt4 key购买 nike

因此,我已经开始在我的大学类(class)中使用 C++,并且到目前为止进展顺利。当前问题让我陷入两难境地,我已经弄清楚了基本代码结构,但我的输出只有一个问题。

我在找什么,例如;

if (bool variable = true){ 

output

else
alternate output

我知道这不是一个免费的调试服务场所,但它对我 future 的项目确实有帮助,而且没有任何错误,它执行得很好。

我的代码:

#include "stdafx.h"
#include <iostream>
#include <iomanip>

using namespace std;

//function prototypes
bool calculateBox(double, double, double, double *, double *);

int main()
{
//defining variables
double length, width, height, volume, surfaceArea;

cout << "Hello and welcome to the program.\nPlease enter the dimensions for the box in [cm](l w h): ";
cin >> length >> width >> height;
calculateBox(length, width, height, &volume, &surfaceArea);

if (bool calculateBool = true) {
cout << "Volume: " << volume << "cm^3" << endl << "Surface Area: " << surfaceArea << "cm^2" << endl;
}
else
cout << "Error, value(s) must be greater than zero!" << endl;

system("pause");
return 0;
}

//functions
bool calculateBox(double length, double width, double height, double * volume, double * surfaceArea) {
if ((length > 0) && (width > 0) && (height > 0)) {
*surfaceArea = length * width * 6;
*volume = length * width * height;
return true;
}
else
return false;
}

*关键,如果值满足要求,输出显示的不是错误信息,而是一个奇怪的字符串,表示surfaceArea和volume。它似乎跳过了“else”语句。

我的问题 - 我的错误是否在函数的 return 语句中?还是我在 main 方法中的“if”语句存在逻辑问题?

最佳答案

在声明中

if (bool calculateBool = true) 

bool calculateBol 部分将导致名为 calculateBool 的局部变量被定义为 bool。 = true 部分表示将 = 左边的值赋值为 true。因此,整个 bool calculateBool = true 将为 true,因此永远不会执行 else 子句。

请注意,在一个条件下出现单个 = 应该总是敲响警钟,表明可能会发生不良迹象。因为比较是否相等是 ==

话虽如此,你可以这样写:

 if (calculateBox(length, width, height, &volume, &surfaceArea)) {

或者如果您稍后需要该值:

bool calculateBool = calculateBox(length, width, height, &volume, &surfaceArea);
if (calculateBool) { // or calculateBool==true if you prefer

关于C++ boolean 函数操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47563580/

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