Форум программистов, компьютерный форум CyberForum.ru

else if - C++

Восстановить пароль Регистрация
 
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
12.11.2012, 18:00     else if #1
C++
1
2
3
4
5
6
7
8
9
10
11
void Matrix::AddRight(int sub, int obj, int right)
{
        if(right==READ && r.r[0]==0) v[sub][obj]+=right;
        else cout<<"Право чтения уже внесено\n";
        if(right==WRITE && r.r[1]==0) v[sub][obj]+=right;
        else cout<<"Право записи уже внесено\n";
        if(right==EXECUTE && r.r[2]==0) v[sub][obj]+=right;
        else cout<<"Право запуска уже внесено\n";
        if(right==DELETE && r.r[3]==0) v[sub][obj]+=right;
        else cout<<"Право удаления уже внесено\n";
}
как эту конструкцию изменить на else if я что-то не пойму.
а то эта функция выводит сразу все cout'ы, кроме того, if которого истинен. А должна выводить только один cout
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AlexSun
16 / 14 / 1
Регистрация: 03.11.2010
Сообщений: 169
12.11.2012, 18:06     else if #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        if(right==READ && r.r[0]==0) v[sub][obj]+=right;
        else if(right==WRITE && r.r[1]==0)
    {
        cout<<"Право чтения уже внесено\n";
        v[sub][obj]+=right;
    }
        else if(right==EXECUTE && r.r[2]==0) {
        cout<<"Право записи уже внесено\n";
        v[sub][obj]+=right;
    }
        else if(right==DELETE && r.r[3]==0)
    {
        cout<<"Право запуска уже внесено\n";
            v[sub][obj]+=right;
    }
        else cout<<"Право удаления уже внесено\n";
Может быть, как-то так.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
12.11.2012, 18:09  [ТС]     else if #3
Цитата Сообщение от AlexSun Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        if(right==READ && r.r[0]==0) v[sub][obj]+=right;
        else if(right==WRITE && r.r[1]==0)
    {
        cout<<"Право чтения уже внесено\n";
        v[sub][obj]+=right;
    }
        else if(right==EXECUTE && r.r[2]==0) {
        cout<<"Право записи уже внесено\n";
        v[sub][obj]+=right;
    }
        else if(right==DELETE && r.r[3]==0)
    {
        cout<<"Право запуска уже внесено\n";
            v[sub][obj]+=right;
    }
        else cout<<"Право удаления уже внесено\n";
Может быть, как-то так.
когда ввожу одно и тоже право 2-ой раз подряд, выводится не верный cout
(добавляю право запуска, все отлично, добавляю это право опять, выводит "право удаления уже добавлено")
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
12.11.2012, 18:10     else if #4
может switch поможет?
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
12.11.2012, 18:12     else if #5
C++
1
2
3
4
5
6
7
8
9
void Matrix::AddRight(int sub, int obj, int right)
{
    if(right==READ)
    {
        if (r.r[0]==0)
            v[sub][obj]+=right;
        else
            cout<<"Право чтения уже внесено\n";
    }
и так далее.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
12.11.2012, 18:17  [ТС]     else if #6
Цитата Сообщение от Croessmah Посмотреть сообщение
может switch поможет?
точно, работает забыл про свитч совсем ))
Yandex
Объявления
12.11.2012, 18:17     else if
Ответ Создать тему
Опции темы

Текущее время: 10:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru