С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
#1

else if - C++

12.11.2012, 18:00. Просмотров 238. Ответов 5
Метки нет (Все метки)

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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
AlexSun
18 / 16 / 1
Регистрация: 03.11.2010
Сообщений: 169
12.11.2012, 18:06 #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";
Может быть, как-то так.
1
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
12.11.2012, 18:09  [ТС] #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
(добавляю право запуска, все отлично, добавляю это право опять, выводит "право удаления уже добавлено")
0
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
12.11.2012, 18:10 #4
может switch поможет?
1
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
12.11.2012, 18:12 #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";
    }
и так далее.
1
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
12.11.2012, 18:17  [ТС] #6
Цитата Сообщение от Croessmah Посмотреть сообщение
может switch поможет?
точно, работает забыл про свитч совсем ))
0
12.11.2012, 18:17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.