Исключение и отсортировка цикла - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > Java

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

Ответ
Опции темы
Непрочитано 08.09.2012, 18:35   #11
Пользователь

Автор темы (Топик Стартер) Re: Исключение и отсортировка цикла

Цитата:
Сообщение от Aquanox Посмотреть сообщение
Для начала идентификаторы, одна буква конечно кратко, но все же это чересчур кратко. Имена классов должны понятные: DistanceType либо DistanceUnit вместо m и Route вместо c.
Имена полей не должны начинаться с префиксов _ либо m / f, в Java используется camelCaseNames для всего и UpperCamelCase для имен классов.

Практически невозможно понять что код пытается делать из-за смеси однобуквенных имен классов и переменных.


this внутри класса можно опускать и обращаться к полям напрямую, тоесть вместо this.myProperty писать myProperty (однако, как исключение обязательно если происходит перекрытие имен, но тут это не важно)
Спасибо, я это учту. Как бы не много извращенский получился код, но больше уклон делал на ООП, нежели процедурным. Т.е. не мог понять наследование, как это работает и в итоге поизащерясь, все стало на свои места.
Когда дописал код в классах (тем самым оптемезируя его) - я приступил описывать запуск программы.
PHP код:
System.out.print("Введите значение: "); 
        
String resault read.readLine(); 
И захотелось мне поставить проверку, если пользователь ввел НЕ число, то ввести повторно и тут такой аспект, как это лучше сделать: исключение или if/else. И к сожалению, незнаю, как проверить именно на число.

и еще

PHP код:
/* 
        *Integer.valueOf(resault) - число, которое ввел пользователь. 
        *c m = new c(v.nextInt(30), "маршурут №"); - создаем объект и передаем свойства. 
        *m.setMess(m.Strel(m.Mera(v.nextInt(5)))): 
        * v.nextInt(5) - рандом число 
        * m.Mera() - получаем значение вычисления 
        * m.Strel() - получаем значение вычисления 
        * m.setMess() - выводим на экран 
        * */ 
        
for(int i =0<= Integer.valueOf(resault);i++){ 
            
c m = new c(v.nextInt(30), "маршурут №"); 
            
m.setMess(m.Strel(m.Mera(v.nextInt(5)))); 
            
/*Результат: маршурут № 27 
                Результат: маршурут № 1 
                Результат: маршурут № 6 
                Результат: маршурут № 6 
                Результат: маршурут № 13 
                Результат: маршурут № 27 
                Результат: маршурут № 28 
                Результат: маршурут № 8 
                Результат: маршурут № 6 
                Результат: маршурут № 2 
                Результат: маршурут № 10 

                отсортировать результат цикла на повторяющиеся данные 
                и вывести на экран 
             */ 
        

Что лучше будет, массив, коллекции или еще один цикл?

Спасибо!

Добавлено через 2 минуты
Цитата:
Сообщение от Ashe Посмотреть сообщение
Здесь можно использовать Scanner:

 
Scanner sc = new Scanner(System.in); // создаём объект класса Scanner
System.out.print("Введите целое число: ");
if (sc.hasNextInt()) // возвращает истинну если с потока ввода можно считать целое число
{
	int i = sc.nextInt(); // считывает целое число с потока ввода и сохраняем в переменную
	System.out.println(i);
}
else
{
	System.out.println("Вы ввели не целое число");
}
 
Code: Java
Спасибо, а только через класс Scanner можно усуществить данную проверку или есть инной способ более эффектный.

Последний раз редактировалось Virt; 08.09.2012 в 18:37. Причина: Добавлено сообщение
Virt вне форума Отправить сообщение для Virt с помощью ICQ Отправить сообщение для Virt с помощью Skype™ Ответить с цитированием
Непрочитано 08.09.2012, 18:46   #12
Аватар для Ashe
Олдфаг

По умолчанию Re: Исключение и отсортировка цикла

Virt, через Scanner в данном случае будет кашернее, имхо. Тем более Вы оперируете с числами, а реализуете через String.
__________________
Fortuna - non penis, in manus non recipe.
Ashe вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 08.09.2012, 18:54   #13
Пользователь

Автор темы (Топик Стартер) Re: Исключение и отсортировка цикла

Цитата:
Сообщение от Ashe Посмотреть сообщение
Virt, через Scanner в данном случае будет кашернее, имхо. Тем более Вы оперируете с числами, а реализуете через String.
Окей, а как будет возможно реализовать через Integer ?
Virt вне форума Отправить сообщение для Virt с помощью ICQ Отправить сообщение для Virt с помощью Skype™ Ответить с цитированием
Непрочитано 08.09.2012, 18:54   #14
Аватар для JavaMan

По умолчанию Re: Исключение и отсортировка цикла

Цитата:
Сообщение от Virt Посмотреть сообщение
Спасибо, а только через класс Scanner можно усуществить данную проверку или есть инной способ более эффектный.
Можно еще преобразовывать строку в инт и ловить ошибку:

public boolean isInteger(String str)
{
   try
   {
      Integer.parseInt(str);
      return true;
   }
   catch(Exception e)
   {
      return false;
   }
}
 
Code: Java

Или пройтись регуляркой, но это уже совсем извращение:

public boolean isInteger(String str)
{
   return str.matches("(-|\\+)?[0-9]+(\\.[0-9]+)?");
}
 
Code: Java
JavaMan вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 08.09.2012, 19:02   #15
Пользователь

Автор темы (Топик Стартер) Re: Исключение и отсортировка цикла

Допустем я вот сделал вот так и у меня получилось:
BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
 
        System.out.print("Введите значение: ");
        String resault = read.readLine();
        try{
            int s = Integer.valueOf(resault);
            System.out.println(s);
        }catch (Exception e){
            System.out.println("ввели не число");
            return;
        }
Code: Java
На сколько актуально будет данная конструкция?

Добавлено через 2 минуты
Цитата:
Сообщение от Java-man Посмотреть сообщение
Можно еще преобразовывать строку в инт и ловить ошибку:

public boolean isInteger(String str)
{
   try
   {
      Integer.parseInt(str);
      return true;
   }
   catch(Exception e)
   {
      return false;
   }
}
 
Code: Java

Или пройтись регуляркой, но это уже совсем извращение:

public boolean isInteger(String str)
{
   return str.matches("(-|\\+)?[0-9]+(\\.[0-9]+)?");
}
 
Code: Java
Вооо, спасибо Вам! Теперь все ясно. И я тут сам уже реализовал по другому через исключение при помощи приведение типов.

Добавлено через 3 минуты
И теперь настала истина: при большом потоке, что будет работать быстрее и занимать меньше памяти?=))

Последний раз редактировалось Virt; 08.09.2012 в 19:10. Причина: Добавлено сообщение
Virt вне форума Отправить сообщение для Virt с помощью ICQ Отправить сообщение для Virt с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заковыка с переменными внутри цикла. Aristocrat PHP 1 04.09.2011 12:18
Работа цикла PellePelle Курилка / Yak floor 7 07.07.2011 00:45


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 17:15. Часовой пояс GMT +3.

Вверх