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

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

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

Регистрация: Nov 2014
Адрес: Харьков
Сообщений: 14
Post Поведение return и break внутри цикла for

Доброго времени суток уважаемые участники!
Помогите разобратся.
Написал функцию и чуть запуталься в инструкции, что важнее в цикле при остановке return или break.
Заранее спасибо.
Код AS3:
private function zeroTime (time:String):String{
	for(var i:int = 0; i < time.length; i++){
		if(time.charAt(i) == "."){// если находим точку то обрезаем и добавляем ноль
			time = time.substr(0,i);
		if(time.length == 1){// если длинна один символ добавляем ноль
			time = "0" + time;
			return time;
			break;
		}else{	
			return time;// если два символя ничего не делаем возвращаем и все
			break;
		}
	}
 
}
if(time.length == 1){// если после выхода из цикла длинна один символ добавляем ноль
	time = "0" + time;
	return time;
}
return time;
}

Старый 05.06.2016, 19:28
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
return - производит немедленный возврат значения с выходом из функции
break - прерывает исполнение цикла, внутри которого он встретился.

Старый 05.06.2016, 19:37
rambler вне форума Посмотреть профиль Отправить личное сообщение для rambler Найти все сообщения от rambler
  № 3  
Ответить с цитированием
rambler
 
Аватар для rambler

Регистрация: Nov 2014
Адрес: Харьков
Сообщений: 14
ясно одно другому не мешает.
спасибо.
мне казалось, что return останавливает все.

Старый 05.06.2016, 21:26
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
мне казалось, что return останавливает все.
Ну как бы так и есть, останавливает.

Цитата:
return time;
break;
Это избыточно. Достаточно первого
__________________
Марк Tween

Старый 06.06.2016, 11:33
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 5  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от in4core Посмотреть сообщение
Это избыточно. Достаточно первого
Это даже не избыточно, а не правильно. В других языках это даже не сокмпилируется, а просто кинет эксепшен типа UnreachableStatement.
__________________
Ко мне можно и нужно обращаться на ты)

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
		private function timeFormat(t:String):String 
		{
			t = "0" + t + ".";
			return t.substr(t.indexOf(".") - 2, 2);
		}
__________________
Reality.getBounds(this);

Старый 07.06.2016, 19:52
rambler вне форума Посмотреть профиль Отправить личное сообщение для rambler Найти все сообщения от rambler
  № 7  
Ответить с цитированием
rambler
 
Аватар для rambler

Регистрация: Nov 2014
Адрес: Харьков
Сообщений: 14
caseyryan спасибо понял

5 строчек кода против 17. знание сила.

Добавлено через 35 минут
доброго времени суток. понимаю что начинаю наглеть. Если у кого есть время не могли бы вы посмотреть мой код. Буду рад любым замечаниям.
Код AS3:
private function checkTimeNumber(hour:String):String{// time validator
if(hour.length === 4 && hour.substring(0,1) < 3 && hour.substring(2,3) < 6){
 
	if(hour.substr(0,1) == 2 && hour.substr(1,1) < 4){
	return per(hour);
 
}else if(hour.substr(0,1) <= 1) {
	return per(hour);
 
}
 
	trace("false");
 
}
 
trace("false");
}
 
function per(hour:String):String{
var hhour:Number = Number(hour.substring(0,2));
var mmin:Number = Number(hour.substring(2));
return checkTime(hhour,mmin);
}


Последний раз редактировалось rambler; 07.06.2016 в 20:29.
Старый 07.06.2016, 20:39
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
substr() возвращает строку, String, а Вы сравниваете ее с числом. Так нельзя. Чтобы сравнивать >=< надо получить ЧИСЛО, содержащееся в тексте строки.
__________________
Reality.getBounds(this);

Старый 07.06.2016, 21:08
rambler вне форума Посмотреть профиль Отправить личное сообщение для rambler Найти все сообщения от rambler
  № 9  
Ответить с цитированием
rambler
 
Аватар для rambler

Регистрация: Nov 2014
Адрес: Харьков
Сообщений: 14
понял. явное преобразование строки в числа.
Код AS3:
var h1:int = int(hour.substr(0,1));
var h2:int = int(hour.substr(1,1));
var m1:int = int(hour.substr(2,1));
var m2:int = int(hour.substr(3));

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от rambler Посмотреть сообщение
понял. явное преобразование строки в числа.
Код AS3:
var h1:int = int(hour.substr(0,1));
var h2:int = int(hour.substr(1,1));
var m1:int = int(hour.substr(2,1));
var m2:int = int(hour.substr(3));
Можно поступить проще. Если у тебя на входе имеется однотипная строка времени, типа 13:52:26, где первый разряд - часы, второй - минуты, и третий - секунды, то самый простой вариант как получить каждое число иp них - будет разделить строку по разделителям, в данном случае двоеточие, получив на выходе массив, и потом содержимое каждой его ячейки привести к типу int
Код AS3:
var timeString:String = "13:52:26";
var array:Array = timeString.split(":"); // тут получаем массив содержащий строки 13, 52, 26 в трех первых ячейках
var hours:int = parseInt(array[0]);
var minutes:int = parseInt(array[1]);
var seconds:int = parseInt(array[2]);
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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