C++ 尝试使用“完成由用户输入确定的循环”;而(COM!=“Y”N“N”);
因此,我遇到的问题是在我的类C++ 尝试使用“完成由用户输入确定的循环”;而(COM!=“Y”N“N”);,c++,oop,while-loop,char,boolean,C++,Oop,While Loop,Char,Boolean,因此,我遇到的问题是在我的类IOutro中,在它的函数commandInput()中,我的意图是创建一个简单的基于命令的循环,询问用户是否希望再次使用或关闭该程序 我使用这个程序的目标是只使用类来存储函数,我主要想要的是调用这些函数的对象。只是第一次尝试OOP 因此,当我尝试运行此程序时,出现了错误 ||=== Build: Debug in Tutorials (compiler: GNU GCC Compiler) ===| C:\Users\Jason\Documents\Tutoria
IOutro
中,在它的函数commandInput()
中,我的意图是创建一个简单的基于命令的循环,询问用户是否希望再次使用或关闭该程序
我使用这个程序的目标是只使用类来存储函数,我主要想要的是调用这些函数的对象。只是第一次尝试OOP
因此,当我尝试运行此程序时,出现了错误
||=== Build: Debug in Tutorials (compiler: GNU GCC Compiler) ===|
C:\Users\Jason\Documents\Tutorials\main.cpp||In function 'int main()':|
C:\Users\Jason\Documents\Tutorials\main.cpp|57|error: could not convert 'COM.std::basic_string<_CharT, _Traits, _Alloc>::operator=<char, std::char_traits<char>, std::allocator<char> >(((const char*)"Y"))' from 'std::basic_string<char>' to 'bool'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
让我们看看代码中的问题 首先,您不需要将
COM
声明为字符串,将其声明为char就足够了,如
char COM = 'Y';
接下来,您应该更改commandInput()
中的while循环条件
while (COM != "Y" || "N" )
到
您的情况不正确,您需要像上面给出的那样检查这两种情况
现在您可能想知道为什么我将|
更改为&&
。这是因为如果它是|
,如果COM
不是'Y'
或COM
不是'N'
,循环将继续。现在就这样想,如果COM
是'Y'
,那么它就不是'N'
,如果它不是'N'
,那么while循环中的条件就满足了,因此它就继续
现在,让我们看看下一个问题。在main()
while (COM = "Y")
=
是赋值运算符,如果要检查是否相等,则需要使用=
。就是
while (COM == 'Y' )
简言之,代码的固定版本是(我删除了您的注释,并在我进行更改的地方添加了注释,三行中有更改)
#包括
使用名称空间std;
INTA;
int B;
char COM='Y';//已更改为char
类Arith{
公众:
整数和(整数A,整数B){
INTC=A+B;
返回C;
}
void calc(){
cout>A;
cout B;
coutwhile(COM=“Y”)
这是赋值,而不是比较:while(COM==“Y”)
。此外,每个术语都需要单独的比较表达式:(COM!=“Y”| COM!=“N”)
也许考虑到case可能是一个好主意,谢谢你,它清除了其中很大一部分,而不是。这给了我最后一点麻烦,我想这是因为变量COM是一个字符串…,而(COM!=“Y”|!=“N”
我仔细检查了我的{}
和分号,但我找不到是什么让这部分出错。是因为我声明了错误吗?最后一个问题可能是因为您在void commandInput()中使用了|
,
将其更改为&&
(它对我有效)。(同时将字符串更改为char)这真是太棒了!太多的帮助了!它不仅解决了我的问题,现在我还有一些地方需要进一步研究和阅读。非常感谢Arun A.S.的建议!
while (COM = "Y")
while (COM == 'Y' )
#include <iostream>
using namespace std;
int A;
int B;
char COM = 'Y'; // changed to char
class Arith{
public:
int sum(int A, int B){
int C = A + B;
return C;
}
void calc(){
cout << "Enter a number for A: ";
cin >> A;
cout << endl;
cout << "Enter a number for B: ";
cin >> B;
cout << endl;
cout << "The sum is: " << sum(A, B)<<endl;
}
};
class IOutro{
public:
void goodbye(){
cout << "Thank you!" << endl;
}
void welcome(){
cout << "Welcome!" << endl;
}
void commandInput(){
cout << "\nWould you like to continue?" << endl;
cout << "Please type 'Y' for Yes, and 'N' for No." << endl;
cin >> COM;
while ( ( COM != 'Y' && COM != 'y' ) && ( COM != 'N' && COM != 'n' ) ) { // made changes here
cout << "\nWould you like to continue?" << endl;
cout << "Please type 'Y' for Yes, and 'N' for No." << endl;
cin >> COM;
}
}
};
int main(){
IOutro IObject;
Arith ArithObject;
while (COM == 'Y' || COM == 'y' ){ // made changes here
IObject.welcome();
ArithObject.calc();
ArithObject.sum(A,B);
IObject.commandInput();
}
IObject.goodbye();
return 0;
}