gpt4 book ai didi

C++ 代码、 boolean 值和循环

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:43 25 4
gpt4 key购买 nike

我是 C++ 编程的新手,一周内没有做任何事情,所以我一直在摆弄到目前为止我所知道的东西,看看是否需要重新学习。

但是,我遇到了 boolean 值的问题(之前没有真正使用过它们)。

来源:

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
signed long int x;
unsigned short int y = 12345;
bool POSX;
bool yes;

cin >> x;

if (x >= 0)
{
POSX = true;
}//end of if for bool
else
{
POSX = false;
}

cout << "This is the current value of X: " << x << endl;
if(x < y)
{
cout << "x is less than the integer y \n \n";
}//end of if
else
{
cout << "y is greater than the integer x \n \n";
}//end of else
cout << "The current value of Y is: " << y << endl << endl << endl;
cout << "Is X positive?: " << POSX << endl << endl;

cout << "How much more would X need to be to surpass y? The answer is: " << y - x << endl;
if(x > y)
{
cout << "well, actually, x is greater than y by: " << y - x << " so you would need to add that to get to the value of x" <<endl <<endl;
}//end of if

cout << "Do you like cookies? Enter below. . ." <<endl;
cin >> yes;

if(yes = "yes") // should this be if(yes = 1)?
{
cout << "I do too! But only when they are soft and gooey!";
} //end of if for bool yes
else
{
cout << "Well, join the dark side, and you may be persuaded by the power of cookies and the power of the dark forces!";
}//end of else for bool yes
char f;
cin >> f;
return 0;
} //end of main

我遇到的问题是当我尝试编译时,首先,程序在我看到 cookie 问题的结果之前退出 [因此我必须在编译器中放置一个断点],其次,当我可以看到答案,它总是会给出"is"的响应,而不是其他任何东西。因此,如果我将 no 作为输入,它仍会输出 if,因为 bool yes 为真。我不确定我是否在最后一条语句中正确定义了 if 子句。谁能帮忙?

最佳答案

好的,有两件事。你的主要问题是:

if(yes = "yes")

'yes' 被定义为 bool 类型,即它可以包含值“true”或“false”。您试图将 boolean 值与字符串"is"进行比较(由于仅使用一个 = 而不是 ==,实际上是尝试分配,这是您检查是否相等的方式)。好吧,那没有意义。应该是:

if( yes )

就是这样。 'yes' 已经是一个 boolean 值,if 语句中的表达式不需要更多。

其次,像这样的构造是多余的和不必要的:

 if (x >= 0)
{
POSX = true;
}//end of if for bool
else
{
POSX = false;
}

您正在检查一个 boolean 值,然后分配一个。只需像这样在一行中完成:

POSX = (x >=0 );

此外,您通常不会对局部变量使用全部大写。

还有一件事;您正在输入字符串数据(“no”或“yes”),而 cin 需要一个 int。我建议您花一些时间了解什么是数据类型。

关于C++ 代码、 boolean 值和循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4140106/

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