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

Разъяснение работы цикла while() - C++

Восстановить пароль Регистрация
 
artem611
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 15
10.04.2012, 18:18     Разъяснение работы цикла while() #1
Всем добрый день. Я начинающий программист, да и к тому же учусь на Java. А тут попался код, на С++, но в нем есть некоторые моенты, которые я не могу понять. Поясните пожалуйста.
Код
nt n;
	vector < vector<int> > g (n, vector<int> (n));
	... чтение графа в матрицу смежности ...

	vector<int> deg (n);
	for (int i=0; i<n; ++i)
		for (int j=0; j<n; ++j)
			deg[i] += g[i][j];

	int first = 0;
	while (!deg[first])  ++first;

еще в коде есть такая запись: if (g[i][j])
Объясните пожалуйста как работает в данном случае while(!deg[first]) и if(g[i][j]), ведь это не булевские выражения

Всем заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2012, 18:18     Разъяснение работы цикла while()
Посмотрите здесь:

объясните принцип работы цикла : ? C++
C++ Как жестко задать частоту работы цикла
C++ разъяснение строки C++
C++ Разъяснение кода
Каково значение переменной после работы цикла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.04.2012, 18:23     Разъяснение работы цикла while() #2
Цитата Сообщение от artem611 Посмотреть сообщение
if (g[i][j])
C++
1
if (g[i][j] != 0)
Цитата Сообщение от artem611 Посмотреть сообщение
while (!deg[first])
C++
1
while (deg[first] == 0)
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.04.2012, 18:24     Разъяснение работы цикла while() #3
В С вообще не было bool, вместо этого использовался int.
C
1
if (a) { //...
Истинно если а != 0, и ложно, если а == 0
В с++ есть bool, но работает он аналогичным образом.
C++
1
2
bool a = 123; //a == 1
bool b = 0; //b == 0
Поэтому
C++
1
!deg[first]
равносильно (!deg[first]) != 0, или, иначе, deg[first] == 0
artem611
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 15
10.04.2012, 18:38  [ТС]     Разъяснение работы цикла while() #4
Спасибо большое. Буду разбираться дальше.

P.S. как оперативно мне ответили. Приятно удивлен)

А, вот еще один момент:
Код
if (deg[i] & 1)
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.04.2012, 18:42     Разъяснение работы цикла while() #5
Цитата Сообщение от artem611 Посмотреть сообщение
if (deg[i] & 1)
По смыслу равносильно
C++
1
if ( deg[i] % 2 != 0)
Но более эффективно
IPtv
8 / 8 / 0
Регистрация: 10.04.2012
Сообщений: 34
10.04.2012, 18:44     Разъяснение работы цикла while() #6
Цитата Сообщение от artem611 Посмотреть сообщение
А, вот еще один момент:
Код
if (deg[i] & 1)
конъюнкция
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
10.04.2012, 18:50     Разъяснение работы цикла while() #7
IPtv, это не совсем конъюнкция, это битовая операция. Смысл конечно тот же, но все же.
IPtv
8 / 8 / 0
Регистрация: 10.04.2012
Сообщений: 34
10.04.2012, 18:54     Разъяснение работы цикла while() #8
Цитата Сообщение от fasked Посмотреть сообщение
IPtv, это не совсем конъюнкция, это битовая операция. Смысл конечно тот же, но все же.
ну дык. товарищу с явой подробности явно не упали, а рисовать таблицу истинности руками влом, а написать "побитовое и" не очень информативно
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
10.04.2012, 18:56     Разъяснение работы цикла while() #9
Цитата Сообщение от IPtv Посмотреть сообщение
ну дык. товарищу с явой подробности явно не упали, а рисовать таблицу истинности руками влом, а написать "побитовое и" не очень информативно
Ну дык
Побитовое И
IPtv
8 / 8 / 0
Регистрация: 10.04.2012
Сообщений: 34
10.04.2012, 18:57     Разъяснение работы цикла while() #10
Цитата Сообщение от fasked Посмотреть сообщение
это всё гугл, скотина
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2012, 20:30     Разъяснение работы цикла while()
Еще ссылки по теме:

Не могу разобраться в принципе работы цикла C++
C++ Как записать результаты работы цикла в переменную?
Разъяснение float f = 1.2F; C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
artem611
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 15
10.04.2012, 20:30  [ТС]     Разъяснение работы цикла while() #11
Спасибо ребята. С последним вопросом сам разобрался уже, но все равно спасибо
P.S. тему можно закрывать. Всем еще раз спасибо)
Yandex
Объявления
10.04.2012, 20:30     Разъяснение работы цикла while()
Ответ Создать тему
Опции темы

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