Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2013, 21:10   #1
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию цикл while заменить на цикл for (Java)

Всем доброго времени суток! У меня такой вопрос. Как в Java указывается признак конца строки, и признак конца файла?

Код:
try
        {
            FileInputStream fi = new FileInputStream("File of input.txt");
            Scanner src = new Scanner(fi);
            src.nextLine();
            for(int i = 0; i < n; i++)            //while (?)
            {    
                x[i] = src.nextDouble();
                System.out.print(x[i]+" ");
            }
            fi.close();
        }catch (IOException e) {}
Начинающий програм вне форума Ответить с цитированием
Старый 11.03.2013, 21:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
признак конца строки
\n. Не?
Цитата:
признак конца файла?
Куда ты его собрался указывать?
Ты хочешь считать до конца файла?
http://stackoverflow.com/questions/1...at-end-of-file
http://www.comprice.ru/articles/deta...551&print=true
Подходит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2013, 22:11   #3
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Спасибо за ссылки, теперь понял! У меня еще один вопрос возник, подскажите пожалуйста.
Почему когда я ввожу число x[n-1] которое принадлежит отрезку [x[0]..x[n-1]], переменная IER остается равной двум?

x[0] = -5.0
x[n-1] = 5.0


Код:
IER=2;
        System.out.println("\rВведите точку xx=");
        double xx = reader.nextDouble();
        if (xx >= x[0] && xx <= x[n-1])
            IER = 0;
        if (IER == 2)
        {
            System.out.println("Код ошибки:" + IER);
            try
            {
                FileWriter fo = new FileWriter("File of output.txt");
                fo.write("IER=" + IER);
                fo.close();
            }catch(IOException e){}
            System.exit(IER);  
        }
Начинающий програм вне форума Ответить с цитированием
Старый 11.03.2013, 22:53   #4
Izobara
Форумчанин
 
Аватар для Izobara
 
Регистрация: 26.12.2012
Сообщений: 227
По умолчанию

Хм... Читая название темы,я ожидал несколько другое русло вопросов...
"I believe I can fly" - C++, "What do you want from me" - Delphi, "Yesterday" - Pascal, "Let it be" - C#... Программисты-музыканты-полиглоты поймут
Izobara вне форума Ответить с цитированием
Старый 11.03.2013, 23:00   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я ожидал несколько другое русло вопросов
Аналогично.
Цитата:
Почему когда я ввожу число
А что трассировка показывает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2013, 23:15   #6
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Я просто не хочу форум замусоривать темами, по данной теме мне ответили на вопрос, но у меня возник другой вопрос и что мне теперь другую тему создавать.


Кол-во элементов в массиве n=21
Код:
-5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 
Введите точку xx=
5
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 21
	at numberzero.NumberZero.main(NumberZero.java:70)
Java Result: 1
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 4 секунды)
Начинающий програм вне форума Ответить с цитированием
Старый 11.03.2013, 23:44   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ArrayIndexOutOfBoundsException
Это видимо намекает на то что n-1 дает число больше чем положенное 20.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.03.2013, 14:52   #8
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Вот если заменить x[n-1] на x[20] все равно не работает. Как тут можно исправить?

Последний раз редактировалось Начинающий програм; 12.03.2013 в 14:55.
Начинающий програм вне форума Ответить с цитированием
Старый 12.03.2013, 14:57   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Как тут можно исправить?
Вы сначала покажите тот кусок кода, где массив объявляете, где заполяете и тп. А так - хз. Телепатию надо прокачивать.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.03.2013, 14:58   #10
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Если это и впрямь строка 70, выводите значения n и x.length() сразу после чтения xx.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл For-Next заменить на For-Each-Next Romahah Microsoft Office Excel 7 23.11.2011 10:00
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34