Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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++ 对于for循环,它同时读取if和elseif语句_C++_Loops_If Statement_For Loop - Fatal编程技术网

C++ 对于for循环,它同时读取if和elseif语句

C++ 对于for循环,它同时读取if和elseif语句,c++,loops,if-statement,for-loop,C++,Loops,If Statement,For Loop,我的for循环有问题。它通过两个数组比较帐号和PIN。if语句检查账号和PIN的组合是否正确。由于我将此部分(user_Account!=accounts[I]| | user_Pin!=pins[I])从原始(user_Account==accounts[I]&&user_Pin!=pins[I])更改,因此发生了这种情况。在此之前,它工作得很好,但我担心如果有人输入了错误的帐户,那么程序可能会崩溃,所以我做了更改。这是代码的一部分,如果需要,我可以发布更多。请记住一件事,我在开始上课,所以没

我的for循环有问题。它通过两个数组比较帐号和PIN。
if
语句检查账号和PIN的组合是否正确。由于我将此部分
(user_Account!=accounts[I]| | user_Pin!=pins[I])
从原始
(user_Account==accounts[I]&&user_Pin!=pins[I])
更改,因此发生了这种情况。在此之前,它工作得很好,但我担心如果有人输入了错误的帐户,那么程序可能会崩溃,所以我做了更改。这是代码的一部分,如果需要,我可以发布更多。请记住一件事,我在开始上课,所以没有先进的变化或建议,我需要在我目前的水平上的东西。谢谢你的帮助

for (int i = 0; i < 6; i++)
{
    if(user_Account == accounts[i] && user_Pin == pins[i])
    {
        cout << "You entered correct combination of account and pin number." << endl;
    }
    else if(user_Account != accounts[i] || user_Pin != pins[i])
    {
        cout << "You entered wrong account and/or wrong pin number. Please start over." << endl;
        return 0;
    }
}
for(int i=0;i<6;i++)
{
if(用户帐户==帐户[i]&&user\u Pin==端口[i])
{

当您从

(user_Account == accounts[i] && user_Pin != pins[i]) 

您应该已转换为:

(user_Account != accounts[i] || user_Pin == pins[i])
实际上,您正在应用一个名为的东西,至少在历史上值得阅读:)


关于账户失败与PIN失败是否应该有单独的if-else条款——这是一种设计决策。如果有人试图闯入你的“银行”,并且从某人的肩膀上猜到PIN和账号,那么单独的错误消息将帮助他/她找到正确的密码另一方面,如果(更有可能)一位客户刚刚犯了一个打字错误,最好有一条消息告诉他们。这完全取决于你。

如果只有两种情况:

  • 帐户id和密码都匹配

  • 至少有一个不匹配

  • 我只想省去第二种情况的麻烦,让检查如下:

    if (user_Account == accounts[i] && user_Pin == pins[i])
        // accounts match message
    else
        // accounts don't match message
    
    另外,for循环上的指针:您可能希望确保当其中一个数组用完时for循环不会继续运行,因此您的for循环签名可能是:

    for (int i = 0; (i < accounts::size) && (i < pins::size); i++)
    
    for(inti=0;(i
    但是如果有人输入了错误的pin怎么办?或者你认为我应该有3条if语句吗?如果是
    if(x)else if(!x)
    ,只需删除第二个if。尝试修复逻辑反转和完全不必要都会让你省去麻烦。就像一件简单的事情PIN代表个人识别号一样,PIN号应该是个人识别号…:)为此,我需要一个类,对“for(int I=0;(Ifor (int i = 0; (i < accounts::size) && (i < pins::size); i++)