Integer.parseInt(scanner.nextLine()); и scanner.nextInt(System.in);
и таких вещей как:
int[] array = new int[5]; и array = new int[5];
помогите пожалуйста добрые люди а то не понимаю
FUNDYK
30 уровень
в чем различие таких вещей как:
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
wan-derer.ru
15 апреля 2023, 07:22
Integer.parseInt(scanner.nextLine()); читает строку от начала и до символа перевода строки и потом пытается преобразовать её в целое число. Строка "123 456" прочитается целиком и преобразование выдаст ошибку т.к. непонятно что делать с пробелом.
scanner.nextInt(System.in); прочитает что-либо что можно интерпретировать как число до первого разделителя. Т.е. "123 456" будет преобразовано в 123. При этом разделитель останется в буфере сканера, т.е. следующим символом (в следующей команде next....()) будет считан пробел. А строка "123" будет преобразована в 123, но в буфере останется символ перевода строки и следующий nextLine() выдаст пустую строку.
В общем, если на входе у тебя ряд чисел, разделённых пробелами, используй nextInt(). Если числа вводятся каждое на новой строке, лучше делать через Integer.parseInt(scanner.nextLine());, так надёжнее.
int[] array = new int[5]; - ты определяешь переменную array типа массив int и сразу присваиваешь ей ссылку на новый массив из 5 элементов.
array = new int[5]; - у тебя где-то ранее определена переменная array, а здесь ты присваиваешь ей ссылку на новый массив.
В принципе, можно делать так:
Это сэкономит немного памяти, но это очень плоха практика т.к. ты обязательно ошибёшься и напишешь какую-то логику, думая что работаешь со старым массивом, а на самом деле обращаясь к новому. И твой медицинский рентген-аппарат начнёт убивать пациентов как уже бывало. +2
FUNDYKExpert
15 апреля 2023, 09:20
спасибо
0