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

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

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

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
По умолчанию Разница между for и while

Цитата:
Homo, с чем тебя и поздравляю.
Реализуй через for чтение данных, вводимых пользователем, заодно проверишь, что есть сокращенная форма while. Помни о том, что параметр цикла (ты ведь знаешь, что это такое ?) внутри тела цикла "readonly".
Цитата:
поэтому предлагаю успокоиться и начать обсуждать различия циклов в другой теме (ну наконец-то что-то интересное на форуме ) а флудить во флейме.
Как и было предложено, начинаю новый тред:
Я не могу вспомнить случая, когда во Flash мне приходилось считывать данные, введёные пользователем, циклом. Соотвественно, вопрос про чтение данных, вводимых польователем немного не соответствует теме. Но если ты настаиваешь - код на C# (да простят меня модераторы)
Код:
using System;
using System.Collections.Generic;
using System.Text;
namespace ReadTest
{
	class Program
	{
		static void Main(string[] args)
		{
			Console.WriteLine("Введите текст:");
			string temp;
			for (; (temp = Console.ReadLine()).Length > 0; )
			{
				Console.WriteLine("Введён новый текст: " + temp);
				Console.WriteLine("Введите текст:");
			}
		}
	}
}
__________________
Всё гениальное просто.

Старый 17.02.2006, 20:18
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 2  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Во избежание недопониманий, есть предложение уйти на чистый С.

Ввод с клавиатуры одной строки - вполне так показательно, с учетом того, что ты реализацию проверки конца ввода возложил на компилятор ( а что ? машина умная, она сама все знает).

Ну про то, что модификация параметров цикла в процессе его выполнения ведет к неустойчивости кода (если мягко выразиться) ты, наверное, не в курсе.

Скомпили проект, посмотри, что там получилось в коде - или тебя это мало интересует, тебе главное - чтобы работало ?
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 17.02.2006, 20:21
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 3  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Хорошо, по теме...
Пользователь вводит размер стороны квадрата.
Твоя задача - полностью заполнить квадрат вертикальными линиями рандомного цвета.

Твоя вторая задача - двигать по окружности внутри квадрата мувик размером 3х3, пока пользователь не ткнет в него мышкой.

Используй for и while в обоих случаях.
Желательно смотри, что происходит с кодом во всех случаях.
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 17.02.2006, 20:40
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 4  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Если честно, на компе у меня не стоит компилятор C и устанавливать его нет никакого желания.
Цитата:
Ну про то, что модификация параметров цикла в процессе его выполнения ведет к неустойчивости кода (если мягко выразиться) ты, наверное, не в курсе.
Не совсем понял. Может быть ты не знаешь C#, но строчка
Код:
for (; (temp = Console.ReadLine()).Length > 0; )
Означает, что в начале итерации мы получаем строку, заносим её в переменную temp и если длина temp больше 0 - начинаем итерацию. В данном случае, изменение параметра цикла опасности не представляет, так как длина строки однозначно либо меньше нуля (выход из цикла), либо больше (начало новой итерации), что и требуется для получения данных, пока они вводятся. Конечно правильнее было бы всё это обернуть в try/catch, но это просто демонстрация.
__________________
Всё гениальное просто.

Старый 17.02.2006, 20:47
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 5  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Цитата:
Хорошо, по теме...
Пользователь вводит размер стороны квадрата.
Твоя задача - полностью заполнить квадрат вертикальными линиями рандомного цвета.
Код:
//Квадрат находится в координатах (0, 0)
var l = tbInput.text; //длинна стороны
//Рисуем границы квадрата
var s = 0;
for(var i = 0; i < l; i++)
{
    //Определяем цвет, устанавливаем перо у верхней грани, ведём линию
}
и
Код:
//Квадрат находится в координатах (0, 0)
var l = tbInput.text; //длинна стороны
//Рисуем границы квадрата
var s = 0;
var i = 0;
while(i < l)
{
    //Определяем цвет, устанавливаем перо у верхней грани, ведём линию
    i++;
}
__________________
Всё гениальное просто.

Старый 17.02.2006, 20:50
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 6  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Цитата:
Твоя вторая задача - двигать по окружности внутри квадрата мувик размером 3х3, пока пользователь не ткнет в него мышкой.
Зачем здесь for или while?
Пишем обработчик onEnterFrame клипа с квадратом, в котором перемещаем мувик по окружности на определённый угол, на мувик ставим обработчик onRelease, который будет удалять onEnterFrame квадрата.
__________________
Всё гениальное просто.

Старый 20.02.2006, 12:18
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 7  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Да, случай запущенный...
В примере про ввод строки ты
а) отдал распознание конца ввода средствам ОС;
б) фактически каждая твоя итерация изменяет параметры цикла;
Ты представляешь себе, как это реализовывается на более низком уровне ? Хотя бы в общих чертах ?

Про рисование квадрата - сам разницы не увидел ? Жаль...
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 20.02.2006, 16:55
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 8  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Цитата:
отдал распознание конца ввода средствам ОС;
Вы, батенька, наверное не совсем понимаете, что говорите. Исполнением программ написанных на платформе .net занимается Microsoft .net Framework, транслируя байт код в машинный код, который и исполняется. При чём здесь ОС я не подрубаю.
Возьмём Flash: программа на ActionScript исполняется Macromedia Flash Player, который точно также транслирует байт код в машинный код, и отвечает за распознавание конца строки. И для меня, как для программиста на ActionScript и C# нет разницы, буду ли я использовать в данном контесте for или while.
Что улучшиться, если я вместо for использую while?
__________________
Всё гениальное просто.

Старый 21.02.2006, 01:22
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 9  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Да собстенно разницы между for и while нету, просто while использовали с 4 версии флеша , а for появился только в пятой ... как по мне так намного удобнее for да и посвежей )))
__________________
BestMasterиZация

Старый 21.02.2006, 01:26
Король вне форума Посмотреть профиль Отправить личное сообщение для Король Найти все сообщения от Король
  № 10  
Ответить с цитированием
Король
 
Аватар для Король

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 2,736
Отправить сообщение для Король с помощью ICQ
посвежей - это что имеется в виду? используется всего 9 лет, а не 10?))

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

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

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


 


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


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