C++ 嵌套循环自身重复最有可能是因为不正确的布尔运算符c++;
我的问题是,如果我输入除1以外的任何内容,第二个do-while循环就会重复。如果我在它询问我是否确定它退出循环时键入1,但任何其他数字只会使控制台窗口继续重复它的问题,而不给我回答的机会。我只在一星期内用了C++,但我认为这些问题是问题所在。C++ 嵌套循环自身重复最有可能是因为不正确的布尔运算符c++;,c++,console-application,nested-loops,do-while,C++,Console Application,Nested Loops,Do While,我的问题是,如果我输入除1以外的任何内容,第二个do-while循环就会重复。如果我在它询问我是否确定它退出循环时键入1,但任何其他数字只会使控制台窗口继续重复它的问题,而不给我回答的机会。我只在一星期内用了C++,但我认为这些问题是问题所在。 }而(x!=2 | | 1) }而(x!=1) #包括 #包括 使用名称空间std; 结构地址{ 字符串名; 字符串地址; 整数音素; }; 地址:fillform() { int x; 地址表; 做{ cout form.name; 不能形成地址; c
}而(x!=2 | | 1)代码>
}而(x!=1)代码>
#包括
#包括
使用名称空间std;
结构地址{
字符串名;
字符串地址;
整数音素;
};
地址:fillform()
{
int x;
地址表;
做{
cout form.name;
不能形成地址;
cout form.phonenumber;
coutx!=2 | | 1
代表(x!=2)| | 1
,这总是正确的
你需要x!=2&&x!=1
x!=2 | | 1
代表(x!=2)| | 1
,这总是正确的
你需要x!=2&&x!=1
x!=2 | | 1
代表(x!=2)| | 1
,这总是正确的
你需要x!=2&&x!=1
x!=2 | | 1
代表(x!=2)| | 1
,这总是正确的
你需要x!=2&&x!=1
x!=2 | | 1
的意思
- 当“x不是2”为真时,或
- 当1为真时
(或两者兼有)
True和false分别等于1和0,因此1始终为True
我想你真正想要的是
x!=2&&x!=1
,这意味着
- 当x不是2,并且
- 当x也不是1时
您可能需要研究哪些运算符首先应用,并且记住每个运算符之间需要有一个完整的可计算短语。换句话说,如果您想要“X是a或B”,您需要说“X是a或X是B”。X!=2|1
的意思是
- 当“x不是2”为真时,或
- 当1为真时
(或两者兼有)
True和false分别等于1和0,因此1始终为True
我想你真正想要的是
x!=2&&x!=1
,这意味着
- 当x不是2,并且
- 当x也不是1时
您可能需要研究哪些运算符首先应用,并且记住每个运算符之间需要有一个完整的可计算短语。换句话说,如果您想要“X是a或B”,您需要说“X是a或X是B”。X!=2|1
的意思是
- 当“x不是2”为真时,或
- 当1为真时
(或两者兼有)
True和false分别等于1和0,因此1始终为True
我想你真正想要的是
x!=2&&x!=1
,这意味着
- 当x不是2,并且
- 当x也不是1时
您可能需要研究哪些运算符首先应用,并且记住每个运算符之间需要有一个完整的可计算短语。换句话说,如果您想要“X是a或B”,您需要说“X是a或X是B”。X!=2|1
的意思是
- 当“x不是2”为真时,或
- 当1为真时
(或两者兼有)
True和false分别等于1和0,因此1始终为True
我想你真正想要的是
x!=2&&x!=1
,这意味着
- 当x不是2,并且
- 当x也不是1时
您可能需要研究哪些运算符首先应用,同时还要记住,每个运算符之间需要有一个完整的可计算短语。换句话说,如果您想要“X是a或B”,则需要说“X是a或X是B”。检查运算符优先级(这是表中的相关片段)
您的“!=”在“||”之前绑定,使表达式始终为真
((x!=2)| | 1)变得公正(1)
这就解释了您看到的问题。如果您真的想检查所有优先规则或打印副本,请访问以下链接:
检查运算符优先级(以下是表的相关片段)
您的“!=”在“||”之前绑定,使表达式始终为真
((x!=2)| | 1)变得公正(1)
这就解释了您看到的问题。如果您真的想检查所有优先规则或打印副本,请访问以下链接:
检查运算符优先级(以下是表的相关片段)
您的“!=”在“||”之前绑定,使表达式始终为真
((x!=2)| | 1)变得公正(1)
这就解释了您看到的问题。如果您真的想检查所有优先规则或打印副本,请访问以下链接:
检查运算符优先级(以下是表的相关片段)
您的“!=”在“||”之前绑定,使表达式始终为真
((x!=2)| | 1)变得公正(1)
这就解释了您看到的问题。如果您真的想检查所有优先规则或打印副本,请访问以下链接:
问题在1,因为1总是真的,而1与它总是会成为真的东西或运算。问题在1,因为1总是真的,而1与它总是会成为真的东西或运算。问题在1,因为1总是真的,而1与它总是会成为真的东西或运算。问题是1,因为1总是真的,而1与某些事物的OR总是真的。你可能想要while(x!=2&&x!=1);
。我的前妻过去也做过同样的事情。@thesudoer你在默认情况下也错过了break;
语句。刚刚意识到是的,谢谢:)你可能想要while(x!=2&&x!=1);
。我的前妻过去也这样做过
#include <iostream>
#include <string>
using namespace std;
struct adress{
string name;
string adress;
int phonenumber;
};
adress fillform()
{
int x;
adress form;
do{
cout << "What's your name" << endl;
cin >> form.name;
cout << "What's your adress" << endl;
cin >> form.adress;
cout << "What's your phone number" << endl;
cin >> form.phonenumber;
cout << "Your name is " << form.name << endl;
cout << "Your adress is " << form.adress << endl;
cout << "Your phone number is " << form.phonenumber << endl;
do{
cout << "Is this information correct?\n1. Yes 2. No" << endl;
cin >> x;
switch ( x )
{
case 1:
cout << "Okay" << endl;
break;
case 2:
cout << "Try again" << endl;
default:
cout << "Invalid answer" << endl;
}
} while ( x != 2 || 1);
} while (x != 1);
return form;
}
int main()
{
fillform();
}
9 == != For relational = and ≠ respectively
10 & Bitwise AND
11 ^ Bitwise XOR (exclusive or)
12 | Bitwise OR (inclusive or)
13 && Logical AND
14 || Logical OR