1

Тема: Як вийти з циклу for, якщо умова була зроблена

#include <iostream>

using namespace std;

void checkUser(char *userlogin, char *userpassword);

int main() {
    char userlgn[30];
    char userpwd[30];

    checkUser(userlgn, userpwd);

    return 0;
}

void checkUser(char *userlogin, char *userpassword) {
    const char      loginAdministrator[] = "Admin";
    const char passwordAdministrator[] = "Admin";

    cout << "Enter the login: ";
    cin >> userlogin;

    cout << "Enter the password: ";
    cin >> userpassword;

    int cmplogin = strcmp(userlogin, loginAdministrator);
    int cmppassword = strcmp(userpassword, passwordAdministrator);

    if (cmplogin == 0 && cmppassword == 0) {
        cout << "You have been entered as administrator." << endl;
    }
    else {
        for (int verify = 0; verify < 3; verify++) {
            cout << "\nUncorrect login or password.\n\tAttempts to enter left " << 3 - verify << endl;

            cout << "Enter the login: ";
            cin >> userlogin;

            cout << "Enter the password: ";
            cin >> userpassword;

            /*if (cmplogin == 0 && cmppassword == 0) {
                cout << "You have been entered as administrator.";
                //continue;break;
            }*/
        }
        cout << "\n\nAccess denied!The number of attempts is limited!" << endl;
    }
}

2

Re: Як вийти з циклу for, якщо умова була зроблена

Умова не може "бути зробленою", вона може виконатися.
Вихід з циклу в довільному місці - це break.
А ви, мабуть, хотіли спитати, як не виконувати рядок 47, якщо умова виконується? Ну очевидно ж - перевіряти перед виконанням цього рядка умову. Або взагалі переробити це все, у вас код по кілька разів повторюється, а дірок більше, ніж здорового коду.
Підказка: з якого б разу користувач не увійшов, а повідомляти йому, що вхід вдалий, треба, тобто це треба робити в одному місці.

Подякували: 0xDADA11C7, leofun012

3 Востаннє редагувалося laketych (14.09.2017 18:30:27)

Re: Як вийти з циклу for, якщо умова була зроблена

koala написав:

Умова не може "бути зробленою", вона може виконатися.
Вихід з циклу в довільному місці - це break.
А ви, мабуть, хотіли спитати, як не виконувати рядок 47, якщо умова виконується? Ну очевидно ж - перевіряти перед виконанням цього рядка умову. Або взагалі переробити це все, у вас код по кілька разів повторюється, а дірок більше, ніж здорового коду.
Підказка: з якого б разу користувач не увійшов, а повідомляти йому, що вхід вдалий, треба, тобто це треба робити в одному місці.

Дякую, тількі що розібрався.

4

Re: Як вийти з циклу for, якщо умова була зроблена

Тоді поділіться своїми здобутками з іншими новачками.