| 1 Бабанов Айдар Нурланович, 02 февраля 2010 г. 11:44:16 | |
if(...){ ...}
|
|
|
| 2 AC-SKYDOS, 29 января 2010 г. 10:24:56 | |
Кириличев Дмитрий Сергеевич структура данных множество есть, но 1)объявление другое 2)проверка на вхождение длинне - st_name.contains(var) что-то вроде этого
|
|
|
| 3 Кириличев Дмитрий Сергеевич, 29 января 2010 г. 5:11:28 | |
А в с++ есть sets ?? Нельзя как в паскале: if (a[i][j]=66)and(not (k in [1,3,5,7])) then continue; ???
|
|
|
| 4 AC-SKYDOS, 28 января 2010 г. 22:04:51 | |
Мас Мих ну никто же не спорит, что нет изъянов у этой фичи) Просто нужно всё делать с умом)
|
|
|
| 5 Мас Мих В, 28 января 2010 г. 21:35:34 | |
И это кстати чревато Когда мы например проверяем какую то переменную не выходит ли индекс за границы например массива А потом проверяем какое-то конкретное условие, например вот тут будет ошибка while (index<a.length && a[index]>5) { ... index++; } Если бы мы использовали & Могла бы возникнуть ошибка
|
|
|
| 6 AC-SKYDOS, 28 января 2010 г. 20:46:39 | |
Мехрдоди Одил(ТРГИ), 28 января 2010 г. 20:38:24 Ну если не ошибаюсь разница в следующем: При использовании && вычисление выражения прекращается сразу после вычисления условия, которое дает FALSE допустим есть такое выражение (a<10 && b>9 && 55%r==9 && 45/t==2) , то в случае, если (a<10) будет верно, а (b>9) нет, то дальнейшая проверка условий закончится и остальное не будет проверяться. При использовании & - происходит полная проверка всего условия, даже если (b>9)==false то остальные условия тоже будут проверены.
|
|
|
| 7 Мехрдоди Одил(ТРГИ), 28 января 2010 г. 20:38:24 | |
|
похоже что да все работает также, но если в книгах о с++(которые я читал) ни слова не написано об этом все же есть некие "побочные эфекты"
|
|
|
| 8 Мехрдоди Одил(ТРГИ), 28 января 2010 г. 20:34:51 | |
да?????? я не знал... и что все будет работать так же как при && ?
|
|
|
| 9 AC-SKYDOS, 28 января 2010 г. 20:22:08 | |
Мехрдоди Одил(ТРГИ), 28 января 2010 г. 20:12:53 Да и не только про первую, вместо двойного (&&) логического И можно написать ординарное(&)
|
|
|
| 10 Мехрдоди Одил(ТРГИ), 28 января 2010 г. 20:12:53 | |
|
аааа, ну да-да! я просто думал все время про эту строку if (k==1,3,5,7) continue; и думал как ее укоротить, а про 1-ую забыл)))
|
|
|
| 11 AC-SKYDOS, 28 января 2010 г. 20:06:16 | |
Мехрдоди Одил(ТРГИ), 28 января 2010 г. 19:45:46 можно вообще так написать и будет работать: if (a[i][j]==66 & k>0 & k<8 & k%2) continue;
|
|
|
| 12 Мехрдоди Одил(ТРГИ), 28 января 2010 г. 19:45:46 | |
ах да можно опусть ==1 и писать так: if (a[i][j]==66) if (k>0 && k<8 && k%2) continue;
|
|
|
| 13 Мехрдоди Одил(ТРГИ), 28 января 2010 г. 19:44:10 | |
ну можно так if (a[i][j]==66) if (k>0 && k<8 && k%2==1) continue;
|
|
|
| 14 Мехрдоди Одил(ТРГИ), 28 января 2010 г. 19:41:27 | |
|
насколько я знаю нет
|
|
|
| 15 Кириличев Дмитрий Сергеевич, 28 января 2010 г. 16:03:46 | |
|
А никак нельзя покороче???
|
|
|
| 16 Мехрдоди Одил(ТРГИ), 28 января 2010 г. 11:00:23 | |
надо писать так if (a[i][j]==66) if (k==1 || k==3 || k==5 || k==7) continue;
|
|
|
| 17 Кириличев Дмитрий Сергеевич, 28 января 2010 г. 8:48:48 | |
Пишу такой код: if (a[i][j]==66){ if (k==1,3,5,7) continue;} Он просматривает первое условие,а про второе забывает. Почему???
|
|
|