МОЙ НОВЫЙ КУРС: • Мой курс "Продвинутая ... ПРАКТИКА НА JAVA: java-marathon.tilda.ws На этом уроке java для начинающих мы изучим цикл for each и создадим массив из строк. Реклама и сотрудничество: alishev.neil@gmail.com
Регистрируйтесь на курс "Продвинутая Java": ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-rRe1vT0SDD8.html Практикуйтесь в написании Java кода: java-marathon.tilda.ws
молодец Наиль , чувствуется в повествовании чему тебя преподаватели научили в ВУЗе, тем же языком и ты нам рассказываешь. слушаю твои лекции с записью в тетрадь для лучшего понимания при програмировании Ардуино .
Спасибо за видео. Очень понятно. Хорошая речь, хороший звук. Это ща очень важно. А также очень понравилось, что поясняешь уже пройденный материал в настоящих примерах. Это новый подход и очень важный для новичков. Может я ошибаюсь но такого ранее не встречал в других лекциях.
Много видео пересмотрел. Наткнулся на Alishev, круто!!! Чистая грамотная речь, ничего лишнего, никаких понтов при лекции. Идите выше автор. Талант +делиться с другими=принесет Вам и удовольствие, карму от нас, чайников, а также доход. Успехов, ждем все новое :)
Очень интересная метафора про "дом") Это была импровизация?) Казалось вы вроде поняли что метафора "не очень", но отступать некуда)) В целом уроки очень интересные, всё дико понятно, занимаясь по книжке шилдта открываю новое, смотря ваши видео. А изначально попал сюда для понимания this. В итоге пересмотрел уже 12 уроков на одном дыхании, многое (после прочтения книжки) разложилось по полочкам. Совет учашимся Джаве как я - совмещайте обучения из разных источников. Проблему, объясненную в двух+ разных топиках, намного проще усвоить и понять. Кайфую от вашей работы. Ставлю пальцы вверх не смотря видео)
@@YVS-ek2ui можно пару вопросов?) на много за год продвинулась? Проходила курсы какие нибудь? И пробовала ли работать?) Или же надоело и подзабила Заранее спасибо
Спасибо за уроки!! Очень хорошая речь и грамотная подача Хотел добавить если System.out.println(sum); добавить в цикл for {} , то он будет показывать все этапы вычисления 1 / 3 / 6 сам сперва не понял где мой пример отличается от вашего, понимаю теперь насколько важна именно практика написания кода, выявляешь для себя что-то новое! подпишусь на Ваш курс!
когда я пишу int sum = 0; то всё ок. а если не присваиваю ноль, то ошибка. Почему? разве sum не ноль изначально? когда массив создаю, то там сразу нули, неужели только созданная переменная не имеет нуля внутри? а ЧТО у нее там тогда? (код про который говорю можно увидеть тут 11:00)
при этом через цикл for (String curr_string: strings) {curr_string = "hello";} нельзя изменить значения массива strings. Мы просто копируем в локальную переменную curr_string энное значение из массива strings, меняем его в этой переменной на "hello", а сам массив остается нетронутым.
Классный стиль подачи материала(ничего лишнего).Если я правильно понял foreach используется только для перебора массива и с его помощью нельзя переписать элементы массива. Т.е. foreach только чтение ?
после 12-го урока я могу: Создать массив из трех слов. В первой ячейке “привет”. Во второй “пока”. В третьей “Джава”. Вывести на экран значения первой и последней ячейки Теперь попробовать вывести тот же массив но используя for 7:20 важный момент переслушать. for (Тип_данных переменная:имя_массива) - это почему-то называется foreach несмотря на то что слова each в коде не наблюдается. Задание - вывести элементы массива с помощью “foreach” Создать массив с цифрами тремя с помощью {5, 10, 1} - сложим эти числа с помощью “foreach” и выведем результат суммы на экран
Как успехи, чем всё закончилось? Забросили джаву или удалось стать разработчиком? for each - (для каждого) - это тип цикла в программировании, который выполняет тело цикла не в зависимости от истинности условия, а для каждого элемента выбранной структуры (массива, списка, строки). В некоторых языках программирования он обозначается служебным словом foreach, но не всегда.
Здравствуйте! Спасибо за уроки! Скажите, уже в нескольких видео слышу что когда мы пишем код, мы ссылаемся на адрес, создаем объект и т.д. Но разве объект создается не во время компиляции и выполнения программы? То есть когда мы написали String[] strings = new String[3]; мы же не создали объект, он же создастся позже? Надеюсь не слишком непонятно объяснил) Может это у Вас и есть в следующих уроках, пока просто не смотрел их.
он создается не в момент написания кода, потому-что этот код нужно запустить, когда код будет запущен (выполнение программы) - тогда и будет создан объект, потому-что он окажется в памяти компьютера.
тимур Балдин Не согласен, приведу опровергающий пример. Допустим у нас есть простенький массив, который содержит следующие значения: int[] arr = {1, 2, 3, 4, 5}; Перед нами стоит задача поменять все значения элементов этого массива (то бишь, попросту перезаписать их). К примеру, нам необходимо увеличить значение каждого отдельно взятого элемента массива в 10 раз. Реализовать это можно следующим образом: ************************************ int count = 0; for(int i : arr) arr[count++] = i * 10; ************************************ Как видите всё очень просто, тело цикла записывается одной строчкой! Всё, что нам необходимо, так это временная переменная count.
Почему у меня Idea ругается int[] numbers = new int[5]; , так как длина не совпадает с дальнейшим присвоением и выводом, а у него нет? Убраны условия демонстрации ошибок?) Если так делаю, то норм int[] numbers = new int[3];
при запуске класса Arrays_of_Strings идет, видимо, отсылка на класс Arrays, который с ошибкой length (писал в комментарии под прошлым уроком) и выдает ошибку...
Отсчет начинается с нуля когда мы начинаем перебирать элементы. Нумерация и перебор индексов начинается с нуля... а "3" в данном случае, просто кол-во элементов в данном классе!
Подскажите, почему такая строчка записывает только последнее введенное число, при этом в нулевую ячейку? for (int j:numbers) {numbers[j]=in.nextInt();}
и правда import java.util.Scanner; public class Testtest { public static void main(String[] args) { Scanner s = new Scanner(System.in); int [] numbers =new int[3]; for(int j:numbers){ numbers[j] = s.nextInt();}; System.out.println(numbers[0]); }
вот через foreach похоже нельзя присваивать значения в массив. Ты по очереди достаешь значения из массива в отдельную переменную j, используешь ее как индекс для numbers, она видимо дальше нулевого элемента нуль, поэтому перезаписывается только нулевой элемент массива. А если написать {j = in.nextInt();}, то вообще ничего не перезапишется :)
Здравствуйте! У меня такой вопрос, переменная типа int занимает 32 бита в не зависимости от значения переменной или нет? то есть int a = -2147483648; и int b= 2147483647; все равно же 32 бита да или нет?
Да, верно. Все равно резервируется. Автор довольно удачно называет это "коробкой". Скажем размер коробки 32 бита вне зависимости какое число из этого диапазона туда будет помещено. Или даже "коробка" будет полностью пустой.
@@Gultseva попробуй поискать в других языках программирования, там есть именно служебное слово foreach, так не везде. Хотя вряд ли эта информация уже актуальна)
Ну представь программу просто как генератор мата))), помнишь? Эти матюки и есть массив, то есть в каждый массив записывается слово или слова(не хорошие). String[] matyki ={Су.., .ля}. Потом, что бы тебе не писать это слово заного ты делаешь ссылку из массива: System.out.println(matyki[0]); На экране будет слово Су..
хотелось бы увидеть автоинициализацию многомерки цикл или метод не важно. думал использовать int j; for (i) {for(j) m[i}[j] = j+x;} m[i][j]=i+y; },но тут возникает мысль, что это дикий бред, это гавно лабает на оба указателя массива. спасибо за уроки, ровно, хорошо и очень понятное изложение
Нет. Это переменная, через которую в теле цикла мы получаем доступ к текущему элементу массива (или другой структуры). При первом выполнении x будет первым элементом, при втором выполнении тела цикла - вторым и так далее. То есть в разных итерациях мы будем получать доступ к разным элементам через одно и то же имя переменной.
1. дополнительно увеличивай счетчик цикла, в самом цикле. 2. с помощью остатка от деления и ветвления if только не четные числа складывай. Надеюсь ты понял )
А мне здесь должно все быть понятно? Я просто во всех этих массивах данных,типах, классах и тд уже запутался ,а это я так понимаю очень важно знать и понимать
У меня почему-то выдаёт не сумму 3-х чисел а поочерёдную сумму int[] number = {1,2,3}; int sum=0; for(int x:number){ sum=sum+x; System.out.println(sum); 1 3 6
Перешел на "Продвинутую джаву" и заметил что ваш метод подачи немного сложный, зачем называть 3 раза (String string : strings) это очень сильно запутывает и человеку сложно понять, ведь можно было просто изменить названия массива на "numberOfFloor", и "string" заменить названием "variableForLoop". В таком случае цикл foreach выглядел бы так (String variableForLoop : numberOfFloor) и сразу понять что откуда берется.
Спасибо, прояснили, а я никак и не могла понять, что за второй string, думаю и не массив и не тип переменной и не название массива ведь, а оказывается тут любое слово можно написать на втором месте. Попробовала второе слово заменить на другое и все отработало
Arhi Demon Вы пытаетесь вывести на консоль объект, коим и является массив, а не элементы этого массива. Если Вы всё делаете по примеру, то на экран нужно выводить результат, который помещается в локальную переменную string типа String.
Если кому то надо практика то решите эти задачи, и если у кого то есть задачи по темам оставляйте их в коментах: Дан массив 5 элементов. Ввести 5 элементов с клавиатуры и вывести их Дан массив 5 элементов. Ввести 5 элементов с клавиатуры , сложить сумму элементов массива и вывести ее. Дан массив 5 элементов. Ввести 5 элементов с клавиатуры , заменить все элементов массива равные 5 на 6 Дан массив 5 элементов. Ввести 5 элементов с клавиатуры , найти произведение четных элементов массива и вывести ее. Дан массив 5 элементов. Ввести 5 элементов с клавиатуры , вывести индексы четных элементов массива
9:16 можно было написать проще sum+=x; зачем 2 раза писать sum ? и второй совет, если хотите узнать что по умолчанию создается в переменной, создайте ее в JShell. там сразу все показывается например: jshell> int a; a ==> 0; или создаем строку: jshell> String asd; asd ==> null + эта оболочка позволяет тебе лучше выучить язык так как она не подсказывает и не помогает с кодом, все в ручную. найти можно тут : C:\Program Files\Java\jdk-14.0.1\bin файлик с именем jshell. - и ярлык на рабочий стол
Привет. Видно сглазил или перехвалил. Не продемонстрирована разница между for & for each. Так сколько же все-таки выделяется памяти под ссылку на строку? И когда? Я думал, что увлечение "детскими играми в кубики" присущи только питонистам. В сто раз важнее привести удачную аналогию для понимания соотношений категорий: абстракция - класс - тип - объект - экземпляр - свойства - атрибуты - методы - функции и т.п., чем играться с тем, что можно освоить за 3 мин. понимая принципы джава. (Чего стоит аналогия "чертеж--машина", ведь чертеж это не абстракция , а класс д.б. абстрактным. Или я чего-то не понимаю? ( "Фигура" - "Квадрат" не лучше?)) Не объяснили почему так важно указывать примитивный цифр. тип И почему прим. типы с мал. буквы, ведь это тоже класс? Спасибо.
На отрезке времени = 07:20 - 07:30 слова автора не стыкуются с фактами: Речь идет о заявлении что в строке: for( String string:strings) - Тип данных; Переменная; Имя массива. По моему, правильно будет так: for( String string:strings) - Тип данных; Имя массива; Переменная. Кто из нас не прав - я или автор?