Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 嵌套循环自身重复最有可能是因为不正确的布尔运算符c++;_C++_Console Application_Nested Loops_Do While - Fatal编程技术网

C++ 嵌套循环自身重复最有可能是因为不正确的布尔运算符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

我的问题是,如果我输入除1以外的任何内容,第二个do-while循环就会重复。如果我在它询问我是否确定它退出循环时键入1,但任何其他数字只会使控制台窗口继续重复它的问题,而不给我回答的机会。我只在一星期内用了C++,但我认为这些问题是问题所在。
}而(x!=2 | | 1)
}而(x!=1)

#包括
#包括
使用名称空间std;
结构地址{
字符串名;
字符串地址;
整数音素;
};
地址:fillform()
{
int x;
地址表;
做{
cout form.name;
不能形成地址;
cout form.phonenumber;

cout
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
,这总是正确的


你需要
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