Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Консольный алгоритм
 
 автор: codexomega   (17.02.2006 в 23:55)   письмо автору
 
 

Надо написать консольную программу на Яве для управления Инструментами.
Все состоит из нескольких классов.
Но проблема такая:
Есть метод для добавления нового инструмента.
Первым делом запрашивается код инструмента. Если такой код уже имеется, то выводится ошибка и код запрашивается повторно.
К сожалению стандартные таблицы не используются, а вместо них есть ArrayList.
Застрял вот на этом алгоритме с проверкой кода.
Пройтись по всем элементам списка не так просто.
Вижу только использование do..while в еще одном do..while
Может кто нибудь увидит упрощенный алгоритм приведенный в первом листинге?
Спасибо.

String inventoryCode;   
Tool myTool;
boolean endOfListe = false;

        myTool = liste.firstElement(); // points to the first element of list
        //
        do{
            inventoryCode = readInventoryCode();
            if(!liste.isEmpty()){
                if(myTool.getInventoryCode().equals(inventoryCode))
                    System.out.println("ERROR, INVENTORY CODE EXISTS!");
                else
                   inventoryCodeExists = false;
            }

            if(myTool == liste.lastElement())
                endOfListe = true;
            else{
                myTool = liste.successorOf(myTool);
            }
        }
        while(!endOfListe);




    public boolean isEmpty (){
        return liste.size() == 0;
    } 

    public T firstElement (){
        if(isEmpty())
            return null;
        else
            return liste.get(0);
    } 

    public T lastElement (){
        if(isEmpty())
            return null;
        else
            return liste.get(liste.size()-1);
    } 

    public T successorOf (T element){
        if( isEmpty() || liste.indexOf(element) >= nbElements() )
            return null;
        else
            return liste.get(liste.indexOf(element)+1);
    } 

   
 
 автор: codexomega   (18.02.2006 в 06:55)   письмо автору
 
   для: codexomega   (17.02.2006 в 23:55)
 

Короче Ява пусть не пугает, так как алгоритм прост и можно хоть на Яваскрипте, хоть на PHP.
Это обычные циклы while/do..while

Только вот если имея дело с массивом можно воспользоваться for(i=0;i<size;i++){}

То здесь для того чтобы пробежаться по всему списку, используются: первыйЭлемент, следующийЭлемент, последнийЭлемент.

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

Так что вроде получается 2 цикла, один в другом...

У меня получается пробежаться по списку и проверить код. Ошибка выскакивает как положенно, но вот в случае ошибки, не получается опять запросить код.

Как эти циклы правильно запихать один в другой?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования