Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.06.2010, 15:58
dixlofos вне форума Посмотреть профиль Отправить личное сообщение для dixlofos Найти все сообщения от dixlofos
  № 1  
Ответить с цитированием
dixlofos
 
Аватар для dixlofos

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
По умолчанию if (j != 0 && i != 0) работает как-то странно

Код AS3:
if (j != 0 && i != 0)
{
       trace(i,"   ",j);
}
в функцию передаються i и j вот так:

Код:
0     0
0     1
0     2
0     3
0     4
1     0
1     1
1     2
1     3
1     4
2     0
2     1
2     2
2     3
2     4
3     0
3     1
3     2
3     3
3     4
левый столбик i, правый j
а функция, при помощи условия, выводит в печать:
Код:
1     1
1     2
1     3
1     4
2     1
2     2
2     3
2     4
3     1
3     2
3     3
Тобишь обрезаются все линии в которых есть 0, следовательно, сдается мне, что && работает как ||. Что я не так делаю-то?

Добавлено через 2 минуты
upd:
по моим представлениям функция, должна выводить в печать, после бработки условием, все значения, кроме первого (0;0)

Старый 05.06.2010, 16:02
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 2  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Ваше условие "если оба не равны нулю", чему вы удивляетесь?

Пример: i=0, j=1. 0!=0 будет false, 1!=0 будет true. false && true будет false, условие не выполняется.

Если вам надо отсечь случай, когда обе переменные нулевые или хотя-бы одна не нулевая, то if(i==0&&j==0) или if(!(i==0&&j==0)) соответственно.


Последний раз редактировалось VVall; 05.06.2010 в 20:23. Причина: так понятнее
Старый 05.06.2010, 19:56
dixlofos вне форума Посмотреть профиль Отправить личное сообщение для dixlofos Найти все сообщения от dixlofos
  № 3  
Ответить с цитированием
dixlofos
 
Аватар для dixlofos

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
false && true будет false
Это как так? О_О
Это же операция конъюнкции, верно?)
Всезнающая говорит, что false должно быть в этом случае.
http://ru.wikipedia.org/wiki/%D0%9A%...86%D0%B8%D1%8F

Что-то я в конец запутался))

Старый 05.06.2010, 20:03
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 4  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
По вашей ссылке написано:
Цитата:
Результат будет равен true, если оба операнда равны true (для числовых типов не равны 0). В любом другом случае результат будет равен false.
И табличка состояний есть, и много текста. Прочтите более внимательно.

Старый 05.06.2010, 20:03
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 5  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
&& - Логическое AND
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 05.06.2010, 20:09
dixlofos вне форума Посмотреть профиль Отправить личное сообщение для dixlofos Найти все сообщения от dixlofos
  № 6  
Ответить с цитированием
dixlofos
 
Аватар для dixlofos

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
VVall
ну да, я это понимаю.

А почему тогда условием отрезаются те случаи когда только i или только j равно 0?

Добавлено через 1 минуту
в приведенном мной выше примере, вторая строка столбца данных, передоваемых в функцию: i = 0 j = 1
Но почему-то после обработки условием мы такой строки не наблюдаем

Старый 05.06.2010, 20:21
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 7  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Вы ходите по кругу. Я разобрал именно этот случай в первом ответе.

Старый 05.06.2010, 20:21
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
А ведь правда, это условие не выполняется ТОЛЬКО тогда, когда i = j = 0. Во всех других случаях должно выполняться. i = 0, j = 1, i != j, значит условие выполнится. Баг?

Добавлено через 7 минут
А хотя нет, запутался вконец. Все верно. Вам нужно сменить на ||, тогда выдаст желаемое.
__________________
тут я


Последний раз редактировалось КорДум; 05.06.2010 в 20:30.
Старый 05.06.2010, 20:31
dixlofos вне форума Посмотреть профиль Отправить личное сообщение для dixlofos Найти все сообщения от dixlofos
  № 9  
Ответить с цитированием
dixlofos
 
Аватар для dixlofos

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
if(!(i==0&&j==0)) - в этой форме записи оно работает, а в моей if (j != 0 && i != 0) - нет)
А почему так? даже если я скобки добавляю: if ((j != 0) && (i != 0)) ? Выходит баг?

Старый 05.06.2010, 22:13
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 10  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Цитата:
Сообщение от dixlofos Посмотреть сообщение
if(!(i==0&&j==0)) - в этой форме записи оно работает, а в моей if (j != 0 && i != 0) - нет)
А почему так? даже если я скобки добавляю: if ((j != 0) && (i != 0)) ? Выходит баг?
Это разные условия. Добавляемые вами скобки ваше условие никак не меняют. Никакого бага тут нет, есть плохое понимание вами логических операций. Читайте книжки, пишите таблицы истинности для ваших условий, и научитесь.

Вероятность нахождения бага в основной функциональности языка, на котором за много лет написано огромное количество сложных программ множество людей, близка к нулевой. Даже локальное возникновение бага (повредился файл компилятора, например) очень маловероятно. Поэтому не надо так настойчиво стремиться списать всё на баг.

Создать новую тему Ответ Часовой пояс GMT +4, время: 05:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 05:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.