<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Dissmind</title><generator>teletype.in</generator><description><![CDATA[Dissmind]]></description><link>https://teletype.in/@javafls?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/javafls?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/javafls?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Mon, 18 May 2026 14:30:17 GMT</pubDate><lastBuildDate>Mon, 18 May 2026 14:30:17 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@javafls/iZJ-dtgS</guid><link>https://teletype.in/@javafls/iZJ-dtgS?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls</link><comments>https://teletype.in/@javafls/iZJ-dtgS?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls#comments</comments><dc:creator>javafls</dc:creator><title>Программирование в Java 2 [Практика]</title><pubDate>Wed, 26 Feb 2020 04:49:10 GMT</pubDate><description><![CDATA[<img src="https://teletype.in/files/ea/dc/eadc1e01-7d30-4067-9a6a-37043f531e5d.png"></img>Напишите программу которая просит поочередно вводить данные человека (имя, возраст, вес, рост), а потом выводит их.]]></description><content:encoded><![CDATA[
  <h2>Задача 1.</h2>
  <p>Напишите программу которая просит поочередно вводить данные человека (имя, возраст, вес, рост), а потом выводит их.</p>
  <p>Разбор задачи:</p>
  <p>Для решения этой задачи, можно использовать программу из практике к первой статье.</p>
  <p></p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/ea/dc/eadc1e01-7d30-4067-9a6a-37043f531e5d.png" width="668" />
  </figure>
  <p>Теперь нужно заменить значения переменных на считанные данные (с помощью сканера).</p>
  <p>Для этого подключаем сканер в начала метода Main. </p>
  <pre>Scanner in = new ScannerSystem.in);</pre>
  <p>Не забываем про импорт сканера<br />для этого перед классом пропишите такую строку</p>
  <pre>import java.util.Scanner;</pre>
  <p></p>
  <p>Теперь нужно поменять значения для каждой переменной на значение, которые считал сканер.</p>
  <blockquote>P.S. Для string используется nextLine(), а для int - nextInt()</blockquote>
  <pre>String name = in.nextLine();
int age         = in.nextInt();
int height     = in.nextInt();
int width      = in.nextInt();</pre>
  <p>Когда программа дойдет до считывания данных, она просто остановится и будет ждать пока пользователь введет данные, но выглядеть это будет как пустая консоль. Давайте перед каждым вводом будем выводить сообщение о просьбе ввести данные.</p>
  <pre>System.out.println(&quot;Введите имя&quot;);
String name = in.nextLine();
System.out.println(&quot;Введите возраст&quot;);
int age         = in.nextInt();
System.out.println(&quot;Введите рост&quot;);
int height     = in.nextInt();
System.out.println(&quot;Введите вес&quot;);
int width      = in.nextInt();</pre>
  <p>Теперь просто выводим полученные данные</p>
  <p>Вся программа будет иметь вид:</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/1b/61/1b61172a-e012-4d77-9b06-3ca735381254.png" width="693" />
  </figure>
  <p>Вы можете поработать с программой в <a href="https://repl.it/@DissMind/FLS-practic-21" target="_blank">онлайн редакторе</a>.</p>
  <blockquote>Также я добавил пробел между вводом и выводом (16 строчка) и при выводе роста и вес в конец &quot;см&quot; и &quot;кг&quot; (21 и 22 строка).</blockquote>
  <hr />
  <p></p>
  <h2>Задача 2.</h2>
  <p>Напишите программу, которая считывает два значения (типа int) и выводит сумму этих чисел.</p>
  <p>Разбор задачи:</p>
  <p>Для начала подключим сканер и считаем два числа (если вам на этом моменте все еще нужно подробное объяснение, как это сделать - вам следует вернутся к статье с теорией).</p>
  <pre>Scanner in = new Scanner(System.in);

System.out.println(&quot;Введите первое число&quot;);
int a = in.nextInt();
System.out.println(&quot;Введите второе число&quot;);
int b = in.nextInt();</pre>
  <p>И в конец добавим еще одну строчку - вывода суммы</p>
  <pre>System.out.println(&quot;Сумма: &quot; + (a + b));</pre>
  <figure class="m_retina">
    <img src="https://teletype.in/files/08/04/0804aff0-6712-4873-b011-0d9540f431ab.png" width="575" />
  </figure>
  <p>Вы можете поработать с программой в <a href="https://repl.it/@DissMind/FLS-practic-22" target="_blank">онлайн редакторе.</a></p>
  <hr />
  <p></p>
  <h2>Задача 3.</h2>
  <p>Напишите программу, которая принимает число и если число четное выводите 1, если не четное 0. (Так как ветвление мы еще не проходили, конструкцию if - использовать нельзя).</p>
  <p>Разбор задачи:</p>
  <p>Для начала подключим сканер и считаем число.</p>
  <pre>Scanner in = new Scanner(System.in);

System.out.println(&quot;Введите число, для проверки на четность: &quot;);
int num = in.nextInt();</pre>
  <p>Теперь выведем 1 если число четное и 0 если не четное.<br />Для этого будем использовать оператор % (деления по модулю, выводит остаток от деления), если число поделить по модулю 2 - результат будет 0 - если число делится без остатка и либо если не делится выведет остаток от деления, 1.</p>
  <pre>System.out.println(&quot;Остаток от деления равен: &quot; + (num % 2));</pre>
  <p>Теперь программа будет выводить 1 если число не четное и 0 если четное.</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/89/6f/896fc098-6d45-4bbc-ae0e-dd32cbe99ce4.png" width="744" />
  </figure>
  <p>Вы можете поработать с программой в <a href="https://repl.it/@DissMind/FLS-practic-23" target="_blank">онлайн редакторе.</a></p>
  <hr />

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@javafls/fls-practic1</guid><link>https://teletype.in/@javafls/fls-practic1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls</link><comments>https://teletype.in/@javafls/fls-practic1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls#comments</comments><dc:creator>javafls</dc:creator><title>Программирование Java 1 (Практика)</title><pubDate>Sat, 22 Feb 2020 10:37:42 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/7a/96/7a968b89-8bcd-4f22-80bc-d97c64366653.png"></media:content><description><![CDATA[<img src="https://teletype.in/files/29/00/2900383b-5432-47ca-98c3-af5c49c918fd.png"></img>В первой статье мы разобрали темы:]]></description><content:encoded><![CDATA[
  <p>В первой статье мы разобрали темы:</p>
  <ol>
    <li>Вывод в консоль + Экранирование символов</li>
    <li>Переменные и Типы данных.</li>
    <li>Комментарии</li>
    <li>Константы</li>
  </ol>
  <p></p>
  <p>Теперь давайте попробуем на практике напишем пару программ и разберем тонкие места.</p>
  <p>Напишем программу, которая будет выводить информацию о вас</p>
  <p>Создаем класс, а внутри метод Main</p>
  <pre>public class Main {
    public static void main(String[] args) {
       
    }
}</pre>
  <p>Напоминаю, что программа начинает свою работу с метода Main.</p>
  <p>Перед тем как двигаться дальше протестируйте, выведите что-нибудь на экран и убедитесь, что нету ошибок. </p>
  <p>Двигаемся дальше</p>
  <p>Выведем приветствие пользователя</p>
  <pre>System.out.println(&quot;Добро пожаловать!&quot;);</pre>
  <p>Теперь выведем саму информацию</p>
  <pre>System.out.println(&quot;Ваше имя: Алексей&quot;);
System.out.println(&quot;Ваш возраст: 18&quot;);
System.out.println(&quot;Ваш рост: 170&quot;);
System.out.println(&quot;Ваш вес: 70&quot;);</pre>
  <p></p>
  <p>Вся программа</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/29/00/2900383b-5432-47ca-98c3-af5c49c918fd.png" width="609" />
  </figure>
  <p>Также вы можете поработать в <a href="https://repl.it/@DissMind/FLS-practic-11" target="_blank">онлайн редакторе</a></p>
  <p>Вывод:</p>
  <figure class="m_original">
    <img src="https://teletype.in/files/cf/fa/cffa3f75-2b58-4088-ac0b-7a83a05c879f.png" width="199" />
  </figure>
  <p>Также на 5 и 10 строчке добавил разделители, чтобы было красивее.</p>
  <p></p>
  <p>Теперь давайте все данные о нас будем хранить в переменных.</p>
  <p>Создаем 4 переменных и устанавливаем им нужны значения</p>
  <pre>String name = &quot;Алексей&quot;;
int age = 18;
int height = 170;
int width = 70;</pre>
  <p>А в выводе (6 - 9 строчки) будем использовать переменные</p>
  <pre>System.out.println(&quot;Ваше имя: &quot; + name);
System.out.println(&quot;Ваш возраст: &quot; + age);
System.out.println(&quot;Ваш рост: &quot; + height);
System.out.println(&quot;Ваш вес: &quot; + width);</pre>
  <p>Здесь мы используем слияния строк при помощи оператора +, мы разберем операторы в следующей статье.</p>
  <p>Теперь программа будет иметь такой вид:</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/7c/95/7c95dab1-b6a6-49d8-89c6-9c93e2f14b95.png" width="617" />
  </figure>
  <p>И последние, добавим спец символы (экранирование)</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/ea/dc/eadc1e01-7d30-4067-9a6a-37043f531e5d.png" width="668" />
  </figure>
  <p><a href="https://repl.it/@DissMind/FLS-practic-13" target="_blank">Онлайн редактор</a></p>
  <p>Вывод:</p>
  <figure class="m_original">
    <img src="https://teletype.in/files/42/23/4223a1a7-e095-4f2f-bb95-7cf1f8d770fc.png" width="267" />
  </figure>
  <p></p>
  <p></p>
  <p></p>
  <p>Предлагаю самостоятельно сделать такую задачу:</p>
  <p>Нужно вывести домик:</p>
  <figure class="m_original">
    <img src="https://teletype.in/files/ef/b8/efb8eb27-efa2-4b87-927b-9df77f209dfd.png" width="124" />
  </figure>
  <p>Но использовать можно только System.out.print(); и выводить только по два символа за одну операцию (не больше).</p>
  <p>Вот пример:</p>
  <pre>System.out.print(&quot;||&quot;);
System.out.print(&quot; /&quot;);
System.out.print(&quot;\\ &quot;);
System.out.print(&quot;  &quot;);
System.out.print(&quot;\n&quot;);</pre>
  <hr />

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@javafls/Tw9hTo86</guid><link>https://teletype.in/@javafls/Tw9hTo86?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls</link><comments>https://teletype.in/@javafls/Tw9hTo86?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls#comments</comments><dc:creator>javafls</dc:creator><title>Программирование Java 5</title><pubDate>Sat, 22 Feb 2020 04:39:18 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/9c/c3/9cc3104d-1ae1-4530-9077-67f9d90b02d8.png"></media:content><description><![CDATA[<img src="https://teletype.in/files/b8/c8/b8c89817-6ca0-479a-abdb-da5623d7b31b.png"></img>В прошлой статье мы разобрали ветвление, теперь программа судя из ситуаций может вести себя по разному.
Любая часть программы (в некоторых случаях и вся программа) может работать в трех режимах. Самое простое это сверху-вниз, все команды будут срабатывать последовательно, теперь добавилось ветвление, когда программа может работать по одной дорожке или другой, зависит от условий. А теперь разберемся с третьим режимом - цикл.]]></description><content:encoded><![CDATA[
  <p>В прошлой статье мы разобрали ветвление, теперь программа судя из ситуаций может вести себя по разному.<br />Любая часть программы (в некоторых случаях и вся программа) может работать в трех режимах. Самое простое это сверху-вниз, все команды будут срабатывать последовательно, теперь добавилось ветвление, когда программа может работать по одной дорожке или другой, зависит от условий. А теперь разберемся с третьим режимом - цикл.</p>
  <p>Цикл - это повторение блока кода, пока условие верное. Во многих случаях условие не изменяется соответсвенно цикл может быть бесконечным.</p>
  <p>Значит мы можем использовать цикл, когда нужно несколько раз повторить блок кода. А с помощью ветвления мы можем задать какие-то условия, чтобы программа имела несколько вариантов событий, что нам дает повторять не просто один и тот же блок кода, но несколько однотипных задач.</p>
  <p>Примеры циклов:</p>
  <p>Мытье посуды. Это ведь однотипная работа? (если где есть повторение одного и того же или чего-то однотипного - значит используется цикл)<br />  Предположим, что у нас большая раковина, все тарелки одинаковые примерно 100 штук, слева от нас большой стол, куда мы будем складывать чистые тарелки, справа такой же стол, только с грязными тарелками.<br />  Если не использовать цикл, нам придется сто раз описывать примерно такой алгоритм:</p>
  <blockquote>Взять тарелку с правого стола<br />Вымыть ее<br />Положить на стол слева</blockquote>
  <p>  Сто раз писать одно и тоже? Вам не кажется, что программирование должно решать подобные задачи, а не создавать их.<br />  К тому же без цикла мы не можем написать бесконечную программу. Чтобы это сделать нужно было бы написать бесконечное количество строчек кода.</p>
  <p>Надеюсь, что вы познакомились с проблемой и теперь примерно понимаете где цикл может использоваться.</p>
  <p>Теперь давайте решим ту задачу с использованием цикла:</p>
  <blockquote>Повторять пока не закончатся тарелки на правом столе<br />     Взять тарелку с правого стола<br />     Вымыть ее<br />     Положить на стол слева</blockquote>
  <p>При таком алгоритме, мы мало того, что упростили саму разработку, так еще и сделали алгоритм лучше - теперь нам даже не важно сколько тарелок на правом столе.</p>
  <p>Теперь давайте перейдем к циклам в Java.</p>
  <p></p>
  <p>// Цикл while</p>
  <p>while - переводится как &quot;пока&quot;, имеет такую конструкцию</p>
  <pre>while(Условие) {
    // Код который должен повторится
}</pre>
  <p>В условие мы можем записать любое значение или выражение типа boolean. </p>
  <p>Цикл будет работать пока условие будет - true, как только false - цикл игнорируется.</p>
  <p></p>
  <p>Давайте попробуем использовать его.</p>
  <p>Пример:</p>
  <p>Выводим Hello World 10 раз</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/b8/c8/b8c89817-6ca0-479a-abdb-da5623d7b31b.png" width="559" />
  </figure>
  <p>// Поправить сриншот</p>
  <p><a href="https://repl.it/@DissMind/FLS-while" target="_blank">https://repl.it/@DissMind/FLS-while</a></p>
  <p></p>
  <p>Зададим переменную i и присвоим 0. Эта переменная нужна, чтобы составить условие для цикла. (5 строчка)<br />Цикл while, в условие запишем пока i меньше 10, теперь цикл будет выполнятся пока i не станет больше 10 (7 строчка)<br />Внутри цикла выводим фразу Hello world в консоль. (8 строчка)<br />Инкрементируем i (прибавляем 1).</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@javafls/TmAVRObv</guid><link>https://teletype.in/@javafls/TmAVRObv?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls</link><comments>https://teletype.in/@javafls/TmAVRObv?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls#comments</comments><dc:creator>javafls</dc:creator><title>Программирование в Java 3</title><pubDate>Tue, 18 Feb 2020 05:41:41 GMT</pubDate><description><![CDATA[<img src="https://teletype.in/files/2f/d5/2fd5ccae-9482-4aa4-bab2-34456a1fc1e9.png"></img>Настало время знакомится с библиотеками в Java.]]></description><content:encoded><![CDATA[
  <p>Настало время знакомится с библиотеками в Java.</p>
  <p><strong>Библиотека </strong>- это готовый набор методов(функций) для решения каких-либо задач.</p>
  <p>Они бывают </p>
  <p>Внутренние - уже встроенные в Java.<br />Внешние (подключаемые) - сторонние, подключенные в ручную.</p>
  <p>Библиотеки хранят множество готовых решений для каких-либо задач, их очень много и вы сможете их использовать для своих приложений, честно говоря иногда встречаются такие, в которых разобраться сложнее чем написать такую-же, по этому перед использованием библиотеки стоит задуматься, не будут ли они излишними? </p>
  <p>Очень часто в программирование (в статьях, книгах..) можно встретить такую фразу &quot;не изобретайте велосипед&quot;, то есть некоторые вещи совсем не обязательно разрабатывать самостоятельно с нуля, можно просто использовать нужную библиотеку в которой это все уже реализовано.</p>
  <p>P.S. Фраза &quot;не изобретайте велосипед&quot; одна из моих любимых, я часто спорю на эту тему. Дело в том, что не понятно в каком случае ты из изобретаешь велосипед и возможно твоя задача действительно используется во многих проектах и стоило бы использовать уже готовые решения, но большое НО все зависит от случая, как я уже говорил есть такие библиотеки в которых разобраться сложнее чем написать свою, почему бы в этом случае не написать свой &quot;велосипед&quot;, если вы создатель этого чуда, вы должны понимать как она устроенна и какие в нем недостатки и в любой момент можете все починить. </p>
  <blockquote>Так, мне кажется на тему &quot;Велосипедов&quot; можно писать целую статью, мне есть что высказать. По этому я остановлю свою мысль и продолжу ее в другой статье. Как она выйдет здесь появится ссылка. </blockquote>
  <p>Позже вы сможете использовать сторонние библиотеки в своих проектах, а еще позже научитесь писать свои, а пока разберемся с одной из встроенных.</p>
  <p></p>
  <p>// Библиотека Math</p>
  <p>В прошлой статье было очень много про вычисления, думаю стоит продолжить эту тему и прийти к какому-то завершению, по этому мы разберем библиотеку Math в которой есть множество методов(функций) для решения множества алгебраических действий (возведение в степень, синус, косинус...) </p>
  <p>Давайте сходу напишем программу и будем разбираться на практике</p>
  <p>Программа будет считывать два числа и выводи результат возведение в степень второго числа первое. </p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/2f/d5/2fd5ccae-9482-4aa4-bab2-34456a1fc1e9.png" width="643" />
  </figure>
  <p>Также вы можете поработать с кодом в <a href="https://repl.it/@DissMind/FLS-Math-pow" target="_blank">онлайн редакторе.</a></p>
  <p>Для считывания данных нам нужен сканер, по этому импортируем его (1 строчка)<br />Внутри main (опять же для считывания данных) создаем объект сканера (5 строчка)<br />Просим ввести два числа, считываем их и записываем в переменные (7 - 10 строчку)<br />Далее выводим слово &quot;Ответ:&quot; и через пробел результат вычисления возведения в степень b, число a.</p>
  <p>Как вы уже наверное догадались для использования библиотеки Math, нужно прописать Math и через точку имя метода, в скобках через запятую указываются параметры.</p>
  <p>Метод pow возвращает (смысл слова возвращает - значение, которое вернется при вычислении) возведение в степень первого числа, во второе. Эти числа можно передавать в параметры (числа в скобках) через запятую. </p>
  <p>Как мы можем с этим работать </p>
  <p>Выводить в консоль</p>
  <pre>System.out.println(Math.pow(2, 4)); // Выведется число 2 в степени 4, 16</pre>
  <p>Записывать в переменную<br />не забывайте, что int работает только с целыми числами, если вам нужны дробные используйте double</p>
  <pre>int a = Math.pow(2, 4); // В переменную запишется число 16</pre>
  <p></p>
  <p>Остальные методы в библиотеке Math<br />разберем основные, остальные прикреплю в удобном формате ниже (png, pdf, txt)</p>
  <p>Нахождение максимального и минимального числа из двух значений</p>
  <pre>Math.max(1, 2); // 2
Math.min(1, 2); // 1</pre>
  <p>Квадратный корень</p>
  <pre>Math.sqrt(16); // 4.0 (типа double)</pre>
  <p></p>
  <hr />
  <p></p>
  <p>// Операции присваивания</p>
  <p>Вы уже использовали один оператор присваивания, для присваивания значения переменной, это =</p>
  <p>Суть оператора - присваивание значение, если до присваивания какой-то значение уже было установлено, оно перезапишется на новое.<br />Тут все просто.</p>
  <p></p>
  <p>Помните оператор инкрементации (++)? Можно обойтись и без него вот такой записью</p>
  <pre>int a = 0;
a = a + 1;</pre>
  <p>Берем изначальное значение переменной, прибавляем ему 1 и записываем в переменную.</p>
  <p>В Java есть более легких способ работы с присваиванием, когда нам нужно вычислить какие-то действия с изначальным значением.</p>
  <p>Пример</p>
  <pre>int a = 0;
a = a + 1; // Было так
a += 1;    // Стало так</pre>
  <p>По такому принципу можно использовать любой бинарный оператор.</p>
  <pre>int a = 1;

a += 1;    // 2
a -= 1;     // 1
a *= 2;    // 2
a /= 2;    // 1
a %= 1;   // 1</pre>
  <p>Также будет работать и со строками</p>
  <pre>String str = &quot;Первая строка&quot;;
str += &quot; &quot;;                         // Добавим пробел
str += &quot;Вторая строка&quot;;   // Добавим вторую строку </pre>
  <p>Теперь переменная str ровна - Первая строка Вторая строка</p>
  <p> </p>
  <p></p>
  <p></p>
  <p>// BigDecimal</p>
  <p></p>
  <p>// Резюме </p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@javafls/fYkdD5o8</guid><link>https://teletype.in/@javafls/fYkdD5o8?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls</link><comments>https://teletype.in/@javafls/fYkdD5o8?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls#comments</comments><dc:creator>javafls</dc:creator><title>Программирование в Java 2</title><pubDate>Tue, 18 Feb 2020 05:40:34 GMT</pubDate><description><![CDATA[<img src="https://teletype.in/files/74/9d/749d5fb0-9ed3-49fc-b3c1-a03ca37aebcd.png"></img>// Ввод с консоли ]]></description><content:encoded><![CDATA[
  <p>// Ввод с консоли </p>
  <p>Для считывания данных который ввел пользователь нужно использовать технологию Scanner.</p>
  <p>Для начала технологию, нужно подключить, для этого перед объявлением класса прописываем такую строчку:</p>
  <pre>import java.util.Scanner;</pre>
  <p>При помощи этой строчки импортируется, все не обходимое для работы со сканером.</p>
  <p></p>
  <p>Далее внутри метода нужно создать объект сканнера (про объекты поговорим позже)</p>
  <pre>Scanner Имя = new Scanner(System.in);</pre>
  <p>В качестве имени для объекта сканера часто используют in, но вы можете назвать как захотите.</p>
  <pre>Scanner in = new Scanner(System.in);</pre>
  <p>Теперь давайте попробуем считать и записать данные в переменную</p>
  <pre>String input = in.nextLine();</pre>
  <p>В переменную input запишется строка, которую введет пользователь.</p>
  <p>(конструкция не совсем понятная, позже вы детально поймете, каждый символ, а пока просто запомните)</p>
  <p>Чтобы разобраться как работает ввод данных, попробуйте считать данные и вывести на экран.</p>
  <p>Напишем не большую программу, спросим имя и поздороваемся.</p>
  <p>Вот исходный код:</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/74/9d/749d5fb0-9ed3-49fc-b3c1-a03ca37aebcd.png" width="541" />
  </figure>
  <p>Также вы можете разобрать код в <a href="https://repl.it/@DissMind/fls-scanner-article-2" target="_blank"> онлайн редакторе.</a></p>
  <p>Для начала мы импортируем сканер (1 строчка)<br />Внутри main, создаем объект сканера для доступа к методу nextLine(), который обеспечивает считывание вводных данных (5 строчка)<br />Просим ввести имя (7 строчка)<br />Создаем переменную типа string и записываем в нее считанные данные, которые ввел пользователь (на этом моменте программа остановится и не продолжится, пока пользователь не введет данные) (8 строчка)<br />И выводим Hello и через пробел имя (которое мы считали) (10 строчка)</p>
  <p>В примере мы разобрали как считать строчку, теперь давайте разберемся как считывать данные другого типа.</p>
  <p>На 8-ой строчке мы создали переменную и присвоили ей in.nextLine(); при помощи объекта через точку можно подключатся к его методам(функциям), если вы работаете в IDE, то после того как вы набрали in. должно высветится подсказка с возможными методами, давайте их разбирать:</p>
  <p> Для работы со строками можно использовать два метода</p>
  <pre>next();
nextLine();</pre>
  <p>Оба метода считывают строчку, но next() - считает до первого пробела (ввод не остановится если вы поставите пробел, но считается все до первого пробела), а<br />nextLine() - считывает вместе с пробелами.</p>
  <p>Можно записать только в переменную типа string</p>
  <p>С остальными типами логика проста, метод будет начинаться с next, а дальше с большой буквы тип данных (слитно). Надеюсь вы понимаете, что если вы считываете данные какого-то типа и хотите ее записать в переменную, она должна быть такого же типа.</p>
  <p>Вот методы для int и double</p>
  <pre>nextInt();
nextDouble();</pre>
  <p>Позже вы познакомитесь с другими типами данных, вот методы для их чтения</p>
  <pre>nextByte();
nextShort();
nextLong();
nextFloat();
nextBoolean();</pre>
  <p></p>
  <p></p>
  <p></p>
  <p>// Арифметические Операции (Выражения)</p>
  <p>В программирование очень большая часть состоит из вычислений и выражений.</p>
  <p>Выражение - это процесс выполнения каких-либо операций над данными.<br />Например сложение, вычитание, умножение.</p>
  <p>Для выполнения операции нужен оператор. Многие из них вам будут очень хорошо знакомы из математики.</p>
  <h3>Операторы </h3>
  <p>Оператор сложения + <br />вычисляет результат сложения двух значений</p>
  <p>Оператор вычитания - <br />вычисляет результат вычитания одного значения из другого</p>
  <p>Оператор умножения *<br />вычисляет результат умножение одного значения на другое</p>
  <p>Оператор деления /<br />вычисляет результат деление одного значение на другое</p>
  <p>Оператор деления по модулю %<br />вычисляет остаток от деления одного значения на другое</p>
  <blockquote>Напомню, что такое остаток при делении. Делим 3 на 2 - на цело делится 1 раз и остается еще 1 - это и есть остаток от деления.</blockquote>
  <p>С первыми тремя операторами все не так сложно.</p>
  <p>Пример:</p>
  <pre>System.out.println(2 + 2); // Выведет 4
System.out.println(2 - 2); // Выведет 0
System.out.println(2 * 2); // Выведет 4</pre>
  <p></p>
  <p>С делением не все так гладко</p>
  <p>Пример:</p>
  <p>Если мы делим на цело, то все нормально</p>
  <pre>System.out.println(10 / 5); // Выведет 2</pre>
  <p>А если нет, то появляется проблема</p>
  <pre>System.out.println(7 / 5); // Выведет 1</pre>
  <p>Дробная часть будет отрезана, это связанно с тем, что значения вычисления в данном случае будет типа int (который не может быть дробным числом). Как решить эту проблему, поговорим в следующей теме.</p>
  <p></p>
  <p>Деление по модулю, у многих почему-то с этим оператором возникают проблемы, не нужно его боятся, все крайне просто, он вычисляет остаток при делении</p>
  <pre>System.out.println(7 / 5); // 2</pre>
  <p>Напишу еще пару примеров</p>
  <pre>3  % 3   // 0
10 % 5   // 0
5  % 3   // 2
20 % 3   // 2</pre>
  <p></p>
  <h3>Приоритет выполнения действий</h3>
  <p>Все работает как в математике - сначала умножение и деление (добавим сюда еще и деление по модулю), потом сложение и вычитание.</p>
  <p>И конечно же мы можем использовать скобки для установки приоритетов.</p>
  <p></p>
  <h3>Еще про операторы</h3>
  <p>Теперь когда мы познакомились с основными операторами, нужно разобраться какие бывают понятия и классификации.</p>
  <p>Операторы делятся по признаку количеству данных над которыми выполняется операция. </p>
  <p>Те операторы, которые мы уже рассмотрели называются <strong>Бинарным </strong>(двойными), так как выполняют вычисление только у двух значений.</p>
  <p>Если вам не понятно, почему они работают только с двумя значениями, объясню подробнее.<br />Есть вот такое выражение 1 + 2 + 3 и вроде как тут три разных значения, о каких двух вообще может идти речь?<br />Дело в том, что в выражении стоит два оператора сложения - соответсвенно операция выполняется два раза - следовательно, если операторы бинарные - значит у нас 4 значения, внезапно появилось еще одно значение, давайте разберем этот пример по этаппно:</p>
  <p>Для начала выполняется 1 + 2, ровно 3<br />А дальше 3 + 3, вот откуда берется еще одно значение, после вычисления выражения - это больше не выражение, а самостоятельное значение и мы можем с ним работать как и с любыми другими значениями.</p>
  <p></p>
  <p>Также существуют <strong>унарные</strong> операторы, они работают только с одним значением.</p>
  <p>Давайте с ними знакомится.</p>
  <p>Унарный минус -<br />делает выражение отрицательным (если унарный минус были использован к отрицательному значению - будет положительное и наоборот)</p>
  <p>Очень страшное слово (это программирование, привыкайте)<br />Инкремент (на самом деле ничего сложного, нет) ++<br />увеличивает значение на 1</p>
  <p>И еще одно страшное слово (вы ведь понимаете, что тут не будет ничего сложного?)<br />Декремент --<br />вычитает от значение 1</p>
  <p>Инкремент и декремент бывает двух видов:<br />Постфиксный - оператор будет стоят после значения</p>
  <pre>int a;
a++;</pre>
  <pre>int a;
a--;</pre>
  <p> Префиксный - оператор будет стоять после значения</p>
  <pre>int a = 0;
++a;</pre>
  <pre>int a = 0;
--a;</pre>
  <p></p>
  <p>Теперь давайте разбираться на примере </p>
  <p>Начнем с префиксного</p>
  <pre>int a = 0; // создаем переменную со значением 0.
++a; // инкрементируем переменную.
System.out.println(a); // выведется 1.</pre>
  <p>Переменная a просто увеличилась на 1.</p>
  <p>Мы можем инкрементировать внутри конструкции вывода</p>
  <pre>int a = 0;
System.out.println(++a); // Выведется 1.</pre>
  <p>Если бы мы использовали декремент, переменная уменьшилась на 1.</p>
  <p></p>
  <p>Теперь разберемся с постфиксным, он работает немного по другому.</p>
  <pre>int a = 0;
System.out.println(a++); // Вывод 0.</pre>
  <p>Выводится 0, дело в том, что операция постфиксной инкрементации имеет приоритет выполнения ниже, чем вывод в консоль. То есть a увеличится на один, после того как выведется.</p>
  <pre>int a = 0;
System.out.println(a++); // Вывод 0.
System.out.println(a);   // Теперь вывод 1.</pre>
  <p>Вот еще пример</p>
  <pre>int a = 0;
System.out.println(a++);   // Вывод 0.
System.out.println(a++);   // Теперь вывод 1.
System.out.println(a++);   // Теперь вывод 2.
System.out.println(a++);   // Теперь вывод 3.
System.out.println(a);     // Теперь вывод 4.
System.out.println(a);     // Теперь вывод 4.</pre>
  <p>Немного позже мы будем очень активно применять операторы инкремента и декремента.</p>
  <p></p>
  <p>И последний вид операторов <strong>Тернарный </strong>он всего один и познакомимся с ним позже.</p>
  <p>  Также операторы по разному работают с разными типами данных, например если используется + с числовыми типами - это оператор сложения, а если со string, то это оператор слияния строк.<br />  Все выше перечисленные примеры, будут работать только если в унарных операторах используется какое-либо значение числового типа данных (double, int), и если в бинарных операторах используются только числовые типы и два значения одного типа данных.</p>
  <p></p>
  <p></p>
  <p>// Остальные числовые типы данных</p>
  <p>Перед темой &quot;Преобразование типов&quot;, нужно познакомится с остальными числовыми данными.</p>
  <p>Целые, аналогичные int, но с другим возможным диапазоном значений.</p>
  <p>// Карточка с целыми </p>
  <p>И еще один тип для не целых (дробных)</p>
  <p>// Карточка с float</p>
  <p></p>
  <p></p>
  <p>// Преобразование типов данных</p>
  <p><strong>Преобразование типа данных</strong> - это процесса преобразование одного типа данных в другой.</p>
  <p>К примеру:</p>
  <pre>byte a = 1;
int b = a;</pre>
  <p>Переменная b расширила диапазон значений переменной a без потери данных.<br />По сути значение переменной a положили в другую переменную с большим диапазоном значений.</p>
  <p>Преобразование без потери данных можно по данной схеме</p>
  <p>byte -&gt; short -&gt; int -&gt; long</p>
  <pre>byte  a = 0;
short b = a;
int   c = b;
long  d = c;</pre>
  <p></p>
  <p>Еще раз вспомним про бинарные операторы<br />Дело в том, что бинарные операторы сначала приравнивают два значение к общему типу и только после выполняют вычисление.</p>
  <p>Вот пример:</p>
  <pre>int  a = 1;
byte b = 2;

System.out.println(a + b);</pre>
  <p>Этот код работает так:</p>
  <p>Сначала идет проверка, имеют ли один тип два значения<br />Если да, то числа складываются (тип данных остается прежний)<br />Если нет, то данные преобразуются к общему типу</p>
  <p>Общий тип - будет тот тип, который хранит больший диапазон значений (соответсвенно занимает больше места)</p>
  <p>При преобразовании byte и int - общим типом будет - int<br />Значит значение типа byte - преобразуется в int (а судя из того, что написана выше - если преобразовать меньший тип к большему - потери данных не будет).</p>
  <p>В итоге значение будет ровно 3 типа int.</p>
  <p></p>
  <p>Теперь давайте рассмотрим преобразование с возможной потеряй данных.<br />Потеря данных возможна, когда мы пытаемся присвоить значение в переменную, которое больше возможного диапазона.</p>
  <p>Пример:</p>
  <pre>int a = 128;
byte b = a;</pre>
  <p>При такой записи компилятор сообщить об ошибке, нельзя автоматически преобразовать в int в byte. Значит нужно преобразовывать явно.</p>
  <p>Для этого перед значением в скобочках нужно указать в какой тип преобразовывать.</p>
  <pre>int a = 128;
byte b = (byte)a;

System.out.println(b);</pre>
  <p>Теперь все преобразовалось, но тип данных byte - не может хранить числа больше 127, а в примере записывается 128. Вы удивитесь, но вывод будет равен -128 (минимальное возможно значение типа byte). На вопрос почему именно это число, нужно отвечать отдельной статьей, об этом позже.</p>
  <p>Это и был пример явного преобразования с возможной потеряй данных (в данном случае с потерей данных).</p>
  <p>Ранее встретился случай, что при делении обрезалась не целая часть, теперь давайте решать эту проблему.</p>
  <pre>System.out.println(5 / 2);</pre>
  <p>Ответ будет 2, не целая часть обрезалась. Это происходит из-за того, что делится два значения типа int, так как два значения являются одним типом данных - преобразования не будет, соответсвенно и значение будет типа int, а так как int не может хранить не целые значения, все что после запятой обрезается. </p>
  <p>Для решения это проблемы есть несколько вариантов:</p>
  <p>Установить одно(или два) из значений тип данных double, чтобы при делении все преобразовалось в double.</p>
  <pre>System.out.println(5.0 / 2);</pre>
  <p>Отличная возможность рассказать про особенность double. Если число типа double - имеет нулевое значение после запятой - пишется 0 - значит если мы преобразуем любое целое число в double, к концу будет приписываться точка и ноль. </p>
  <p>Преобразовать одно(или два) из значений в double.</p>
  <pre>System.out.println((double)5 / 2);</pre>
  <p>В данном случае мы преобразовали значение 5 в double, теперь оно будет иметь вид 5.0</p>
  <p>Теперь деление будет работать правильно, выведет 2.5</p>
  <p></p>
  <p>Также стоит рассмотреть, что будет если мы преобразуем выражение в double, для этого нужно обвернуть все выражение в скобки и перед этим в скобках написать нужный тип.</p>
  <pre>System.out.println((double)(5 / 2));</pre>
  <p>Вывод будет 2.0, так как сначала вычисляется выражение, и далее значение преобразуется в double.  </p>
  <p>Есть еще некоторые способы преобразования, продолжим позже.</p>
  <p></p>
  <p>//Резюме</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@javafls/KHVA9yvQ</guid><link>https://teletype.in/@javafls/KHVA9yvQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls</link><comments>https://teletype.in/@javafls/KHVA9yvQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls#comments</comments><dc:creator>javafls</dc:creator><title>Программирование в Java 4</title><pubDate>Tue, 18 Feb 2020 04:41:50 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/b1/b5/b1b5f875-7263-491e-8195-cd13c3a36f44.png"></media:content><description><![CDATA[<img src="https://teletype.in/files/ca/6b/ca6bf0f6-f167-437b-b0b4-b678b0afeed5.png"></img>Как вы знаете программа выполняет все операции сверху-вниз
А что делать если программа должна в одном случае работать по одному, во втором по другому? Для решение этой проблемы изучим следующую тему.]]></description><content:encoded><![CDATA[
  <p>Как вы знаете программа выполняет все операции сверху-вниз<br />А что делать если программа должна в одном случае работать по одному, во втором по другому? Для решение этой проблемы изучим следующую тему.</p>
  <p></p>
  <h2>Ветвления или Условные конструкции</h2>
  <p>Выражение if - (переводится как &quot;если&quot;), при помощи этого оператора мы можем выполнять блок кода, если условие верно.</p>
  <p>Синтаксис:</p>
  <pre>if (Условие) {
   // Code
}  </pre>
  <p></p>
  <p>Для работы с ветвлением нужно разобраться с еще одним типом данных и его операциями.</p>
  <h3>Логический Тип</h3>
  <p>boolean, он же логический тип</p>
  <p>Данный тип работает только с двумя значениями - true (правда), false (ложь).</p>
  <p>Пример:<br />Создадим переменную логического типа со значением true</p>
  <pre>boolean a = true;</pre>
  <h3>Операции с логическим типом или Условные выражения </h3>
  <p>Все ниже перечисленные операции являются бинарными (работают только с двумя значениями) и всегда возвращают значения типа boolean, true - если условие верно, false - если не верно.</p>
  <p><u>Сравнение на равенство, оператор &quot;==&quot;.</u></p>
  <ul>
    <li>true - если значение ровны</li>
    <li>false - если значения разные</li>
  </ul>
  <p></p>
  <blockquote>Обратите внимания, что &quot;=&quot; - это оператор присваивания значения, а &quot;==&quot; - это оператор равенства. Это одна из самых распространенных ошибок начинающих программистов. Пожалуйста не путайте их.</blockquote>
  <p>Примеры:</p>
  <pre>boolean a = 10 == 11;</pre>
  <p>Переменная а, будет ровна false.</p>
  <p></p>
  <hr />
  <p></p>
  <p><u>Сравнение на неравенство, оператор &quot;!=&quot;.</u></p>
  <p>Полная противоположность оператора равенства. </p>
  <ul>
    <li>true - если значение разные</li>
    <li>false - если значения ровны</li>
  </ul>
  <p>Примеры:</p>
  <pre>boolean a = 10 != 11;</pre>
  <p>Переменная а, будет ровна true.</p>
  <p></p>
  <hr />
  <p></p>
  <p>Рассмотрим сразу несколько операторов, так как они очень похожи (к тому же их вы все знаете со школы)</p>
  <ul>
    <li>&gt; - больше</li>
    <li>&lt; - меньше</li>
    <li>&gt;= - больше-ровно</li>
    <li>&lt;= - меньше-ровно</li>
  </ul>
  <p>Надеюсь, что вы и без меня понимаете как с ними работать. <br />Но все же вот пару примеров:</p>
  <pre>boolean a = 1 &gt; 10; // false
boolean b = 2 &lt; 2;  // false </pre>
  <hr />
  <p></p>
  <p>А теперь не большой привет от математической логики. Не пугаемся, все нормально, ничего сложного.</p>
  <p>Логическое И - &quot;&amp;&amp;&quot; - Конъюнкция</p>
  <ul>
    <li>Если два значения true - true</li>
    <li>В любой другом случае - false</li>
  </ul>
  <p>Пример: </p>
  <pre>boolean a = true  &amp;&amp; true;  // true
boolean b = false &amp;&amp; true; // false</pre>
  <p></p>
  <p>Логическое ИЛИ - &quot;||&quot; - Дизъюнкция</p>
  <ul>
    <li>Если любое из значений ровно true - true</li>
    <li>В любой другом случае - false</li>
  </ul>
  <p>Пример: </p>
  <pre>boolean a = true  || true;   // true
boolean b = false || true;   // true
boolean c = false || false;  // false</pre>
  <p></p>
  <p>Логическое Исключающая ИЛИ (ЛИБО) - &quot;^&quot; - Строгая дизъюнкция</p>
  <p>Честно говоря, этот оператор используется крайне редко (если конечно, речь идет не о криптографии), но все же стоит его знать.</p>
  <ul>
    <li>Если одно из значений будет true (но не одновременно) - false.</li>
    <li>в любом другом случае - false.</li>
  </ul>
  <p>Пример: </p>
  <pre>boolean a = true ^ false; // true
boolean b = true ^ true;  // false</pre>
  <p></p>
  <p></p>
  <p>Логическое НЕ - &quot;!&quot; - Инверсия</p>
  <p>Данный оператор является унарным и работает только с одним значением <br />Операция инвертирует (устанавливает обратное) значение </p>
  <ul>
    <li>Если значения true - false</li>
    <li>Если false - true</li>
  </ul>
  <p>Пример: </p>
  <pre>boolean a = !false; // true
boolean b = !true;  // false</pre>
  <p></p>
  <p>Приведу несколько примеров по теме:</p>
  <pre>boolean a = (10 + 2) &lt; 6 || 2 == 2; // true
boolean b = false ^ 2 &lt; 1;          // true
boolean c = a &amp; b;                  // true
boolean d = 10 &lt; 100 &amp;&amp; -1 &gt; 2;     // false
boolean e = !((a &amp;&amp; b) || c);       // true</pre>
  <p></p>
  <hr />
  <p></p>
  <h2>Теперь вернемся к ветвлению</h2>
  <p>Напомню синтаксис конструкции if:</p>
  <pre>if (Условие) {
//code
}</pre>
  <p>В условие принимается значение/выражение типа boolean, если значение ровно true - блок кода внутри фигурных скобок выполнится, в другом случае - будет игнорироваться.</p>
  <p>Пример:<br />Проверяем число на четность</p>
  <pre>Scanner in = new Scanner(System.in);

System.out.println(&quot;Введите число, для проверки на четность&quot;);
int input = in.nextInt();

if (input % 2 == 0) {
    System.out.println(&quot;Число четное&quot;);
}

if (!(input % 2 == 0)) {
    System.out.println(&quot;Число не четное&quot;);
}
</pre>
  <ol>
    <li>Для начала мы подключаем сканер.</li>
    <li>Выводим сообщение, где просим ввести число.</li>
    <li>Читаем вводное значение и записываем в переменную input.</li>
    <li>Условие: если вводное значение делим по модулю на 2 и получаем 0, выводим сообщение, что число четное. (иными словами если число делится на 2 без остатка)</li>
    <li>Условие: такое же условие только в начале стоит оператор НЕ (!), то есть если условие не верное выводим сообщение, что число не четное.<br /></li>
  </ol>
  <hr />
  <h3>Конструкция else (иначе)</h3>
  <p>Используется вместе с конструкцией if позволяет выполнить блок кода, если условие if - false.</p>
  <p>Синтаксис:</p>
  <pre>if (Условие) {
    // Выполняемый код, если условие верное
}
else {
    // Выполняемый код, если условие не верное
}</pre>
  <p>В качестве примера можно переписать прошлый пример с использованием else (как и нужно было писать эту программу):</p>
  <pre>Scanner in = new Scanner(System.in);

System.out.println(&quot;Введите число, для проверки на четность&quot;);
int input = in.nextInt();

if (input % 2 == 0) {
    System.out.println(&quot;Число четное&quot;);
}
else {
    System.out.println(&quot;Число не четное&quot;);
}</pre>
  <p></p>
  <p>А как бы вы решили такую задачу:<br />Вводится число, если оно четное выводим 1, если нет, выводим 2, если число четное и больше 3-х выводим 3.</p>
  <p>Предполагаю, что некоторые будут пытаться написать примерно так:</p>
  <pre>Scanner in = new Scanner(System.in);

System.out.println(&quot;Введите число, для проверки на четность&quot;);
int input = in.nextInt();

if (input % 2 == 0) {
    System.out.println(&quot;1&quot;);
}
else {
    System.out.println(&quot;2&quot;);
}
if (input % 2 == 0 &amp;&amp; input &gt; 10) {
    System.out.println(&quot;3&quot;);
}</pre>
  <p>Давайте разберем, что здесь не так</p>
  <p>если мы вводим нечетное число - все хорошо, выведется 2<br />и если введем четное число, но меньше 10 - выведется 1, <br />а вот если вводим четное число больше 10 - выведется и 1, и 3</p>
  <p>Почему так происходит? Ответ прост, потому что так написана программа. Например если вводится число 12 подойдет к первому условию и к третьему.</p>
  <blockquote>На самом деле логика должна быть примерно такая:<br />Проверяем число на четность<br />    Если четное, то<br />        проверяем больше ли оно 10-ти<br />          Если больше - выводим 3<br />          Если нет - выводим 1<br />    Если не четное, то выводим 2</blockquote>
  <p></p>
  <p> </p>
  <p>/////////////Блок - схема</p>
  <p>А вот и сам код программы:</p>
  <pre>Scanner in = new Scanner(System.in);

System.out.println(&quot;Введите число, для проверки на четность&quot;);
int input = in.nextInt();

if (input % 2 == 0) {
    if (input % 2 == 0 &amp;&amp; input &gt; 10) {
        System.out.println(&quot;3&quot;);
    }
    
    System.out.println(&quot;1&quot;);
}
else {
    System.out.println(&quot;2&quot;);
}
</pre>
  <h3>Конструкция else if</h3>
  <p>  Предположим, что у вас в программе есть момент, когда идет множество ветвлений и вам приходится писать несколько условий подряд.<br />  К примеру, обработчик какой-то команды (как в командной строке), пользователь вводит команду и программа как-то реагирует на это. </p>
  <p>Для этого отлично подходит конструкция else if.</p>
  <p>Синтаксис:</p>
  <pre>if (Условие 1) {
    // Code 1...
}
else if (Условие 2) {
    // Code 2...
} 
else if (Условие 3) {
    // Code 3...
}
else {
    // Code 4...
}</pre>
  <p>Как это будет работать: </p>
  <ol>
    <li>Если 1 условие верное - выполняется code 1</li>
    <li>Если 1 условие не верное, следует условие 2, если оно верное - выполняется code 2</li>
    <li>Если условие 2 не верное, следует условие 3, если оно верное - выполняется code 3</li>
    <li>Если условие 3 не верное -выполняется code 4</li>
  </ol>
  <p></p>
  <p>  Разберем на примере программы, которая будет выводит расписание занятий для конкретной группы.<br />  Идея такая: У нас есть факультет &quot;Программирования&quot;, на ней учится 3 группы (для простоты с номерами 1, 2, 3) . Программа будет спрашивать группу, в ответ выдавать - расписание занятий на завтра. </p>
  <p>Для начала давайте спросим у пользователя, для какой группы расписание ему нужно.</p>
  <pre>System.out.println(&quot;Введите номер группы&quot;);</pre>
  <p>Затем нужно считать данные, которые ввел пользователь.</p>
  <pre>Scanner in = new Scanner(System.in);
int groupNumber = in.nextInt();</pre>
  <p>Далее нам нужно судя из ответа, вывести нужно расписание. Тут мы и будем использовать конструкцию else if.</p>
  <pre>if (groupNumber == 1) {
    System.out.println(&quot;Расписание для первой группы&quot;);
}
else if (groupNumber == 2) {
    System.out.println(&quot;Расписание для второй группы&quot;);
}
else if (groupNumber == 3) {
    System.out.println(&quot;Расписание для третей группы&quot;);
}  
else {
    System.out.println(&quot;Данной группы не существует&quot;);
}</pre>
  <p>Здесь вы можете посмотреть <a href="https://repl.it/@DissMind/FLS-java-article-4-if-else" target="_blank">полный код программы</a></p>
  <h3>Конструкция Switch</h3>
  <p>  В некоторых случаях из-за конструкции else if код может стать слишком громоздким и излишним, конструкция switch помогает решить эту проблему.<br />  Работа switch аналогична.</p>
  <p>Синтаксис:</p>
  <pre>switch (Принимаемое значение) {    
    case 1:         
        // Code 1..        
        break;    
    case 2:        
        // Code 2..        
        break;    
    case 3:        
        // Code 3..        
        break;
    default:
        // Code 4..
}</pre>
  <p>  Здесь дела обстоят также как и в примере выше (про if else), но немного меняется принцип.<br />  В &quot;принимаемые значение&quot; можно вставить переменную/значение, далее идут несколько case&#x27;ов, &quot;принимаемое значение&quot; сравнивается со всеми значениями написанные после оператора case, если они ровны - выполняется код после &quot;:&quot; до оператора break, если не один не подошел - выполняется код после оператора default (оператор default может отсутствовать).</p>
  <p></p>
  <p>В качестве примера предлагаю переписать пример выше (с использованием else if).</p>
  <p>Пример:</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/ca/6b/ca6bf0f6-f167-437b-b0b4-b678b0afeed5.png" width="744" />
  </figure>
  <p>// ПОправить скин (забыл sout)</p>
  <p></p>
  <hr />
  <h3>//Резюме</h3>
  <p> </p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@javafls/gU_OPIWb</guid><link>https://teletype.in/@javafls/gU_OPIWb?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls</link><comments>https://teletype.in/@javafls/gU_OPIWb?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=javafls#comments</comments><dc:creator>javafls</dc:creator><title>Программирование Java 1</title><pubDate>Sun, 16 Feb 2020 20:47:33 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/5d/eb/5deb3082-e77b-46c4-b502-c9e60f207507.png"></media:content><description><![CDATA[<img src="https://telegra.ph/file/53611157bb9efa2cba858.jpg"></img>Чтобы запустить программу на java нужно:]]></description><content:encoded><![CDATA[
  <p>Чтобы запустить программу на java нужно:</p>
  <ol>
    <li>Написать код </li>
    <li>Скомпилировать</li>
    <li>Выполнить при помощи JRE (Java Runtime Environment - среда выполнения java)</li>
  </ol>
  <p>Что это за ужасное слово &quot;скомпилировать&quot;</p>
  <ul>
    <li>Дело в том, что компьютер работает только с машинным кодом, для запуска программы java нужно перевести исходный код в машинный язык - этот процесс и называется <strong>компиляцией.</strong> </li>
  </ul>
  <p>Для компиляции нужен компилятор.</p>
  <p>Установить вы его можете на этом сайте (на самом деле нужен не сам компилятор, а JDK - java development kit - java набор для разработки) <a href="https://www.oracle.com/index.html" target="_blank">сайте (официальный сайт oracle)</a></p>
  <ul>
    <li><a href="https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html" target="_blank">8 версия</a> </li>
    <li><a href="https://www.oracle.com/java/technologies/javase-jdk13-downloads.html" target="_blank">13 версия</a></li>
  </ul>
  <p>если вам нужно помощь в установке нужного софта, вот ссылки на гайды:</p>
  <ol>
    <li>Скоро здесь появится ссылка.</li>
  </ol>
  <p>Также я упоминал еще одно странное слово JRE (Java Runtime Environment - среда выполнения java) - это среда для выполнения программ на Java.</p>
  <p>Если вы скачали и установили JDK, в него входит и среда выполнения, скачивать больше ничего не нужно.</p>
  <p><br /></p>
  <p>А где мы будем писать код? </p>
  <p>Можно конечно в блокнотике, но я не думаю, что это хорошая идея. Существует большое множество текстовых редакторов и IDE. Если с текстовыми редактором все понятно - программа для редактирования текста, то IDE - это Integrated development environment, интегрированная среда разработки - программа в которой встроено множество функций для разработки и сам редактор. Более подробно про IDE и текстовые редакторы вы можете прочитать здесь:</p>
  <ol>
    <li>Скоро здесь появится ссылка.</li>
  </ol>
  <p>P.S. Если вы не хотите тратить время на статью про IDE и текстовых редакторах, вкратце -  Для Java советую использовать <a href="https://www.jetbrains.com/idea/download/#section=windows" target="_blank">Intelij IDE </a>(устанавливайте community версию - она бесплатна), также многие используют <a href="https://netbeans.org/" target="_blank">NetBeans IDE</a>, <a href="https://www.eclipse.org/downloads/" target="_blank">Eclipse IDE.</a> Если вам достаточно текстового редактора рекомендую <a href="https://www.sublimetext.com/" target="_blank">Sublime Text</a>, <a href="https://code.visualstudio.com/" target="_blank">Visual Studio Code</a>, <a href="https://atom.io/" target="_blank">Atom.</a></p>
  <p>Надеюсь, что на этом этапе вы уже установили и настроили все не обходимое для разработки. Мы приступаем к изучению самого языка.</p>
  <p></p>
  <figure class="m_retina">
    <img src="https://telegra.ph/file/53611157bb9efa2cba858.jpg" width="640" />
  </figure>
  <p>По традиции первая программа представляет из себя вывод на экран надпись &quot;Hello world!&quot;.</p>
  <p>Если вы работаете в intelij IDE нажмите ПКМ во вкладе с деревом проекта -&gt; по папке src. В контекстном меню выберите New -&gt; класс Java.</p>
  <figure class="m_original">
    <img src="https://teletype.in/files/02/c6/02c68837-393b-4151-a0e9-619b9cc057ab.gif" width="690" />
  </figure>
  <p></p>
  <p>Вот исходный код </p>
  <p></p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/59/79/5979bb62-5749-48dd-99af-24c550bb1ea1.png" width="550" />
  </figure>
  <p><a href="https://repl.it/@DissMind/fls-hello-world" target="_blank">Вы можете посмотреть код в онлайн редакторе</a></p>
  <p>Давайте пробежимся по каждой строчке</p>
  <ol>
    <li>В Java все состоит из классов по этому для начала мы создаем класс. После стоят фигурные скобки - все что внутри относится к классу.</li>
    <li>Внутри класса создаем метод Main, он принимает параметр массив строк (что такое класс, метод и его параметры пока не берите в голову, поговорим об этом позже). Любая программа начинает свою работу от метода Main - то, что написано внутри - будет выполнятся. </li>
    <li>Далее пишется <strong>выражение, которое обеспечивает вывод строки &quot;Hello World!&quot; в консоль. Строка обязательно должна быть обернута кавычками, а после каждого выражения ставиться точка с запятой.</strong></li>
    <li>И последние мы закрываем фигурные скобки. </li>
  </ol>
  <p>Поздравляю вы написали свою первую программу.</p>
  <p></p>
  <p>Если сложно запомнить - не переживайте скоро это пройдет.</p>
  <p></p>
  <p></p>
  <figure class="m_column">
    <img src="https://teletype.in/files/35/fa/35fab9d4-8ed4-4564-99fc-0703fd340d68.jpeg" width="1920" />
  </figure>
  <p>Для вывода в консоль используется данная конструкция </p>
  <pre>System.out.println(/*Сюда вставляется, что нужно вывести*/);</pre>
  <p>Также если и такая конструкция </p>
  <pre>System.out.print(/*Сюда вставляется, что нужно вывести*/);</pre>
  <p>  Первая запись выводит на консоль и переходит на следующую строчку (все следующие отображения будут на следующей строчке).<br />  Вторая запись выводит на консоль и не переход на следующую строчку (все следующие отображения будут на той же строчке).</p>
  <p>Внутрь скобок вставляется значение, которое нужно вывести</p>
  <p>Это может быть: </p>
  <p>строчка, для вывода строки используются кавычки. Обратите внимание, что если вы работаете со строкой - нужно обязательно обернуть все в кавычки.</p>
  <pre>System.out.println(&quot;Строчка&quot;);</pre>
  <p>число</p>
  <pre>System.out.println(123);</pre>
  <p>выражение (о них поговорим немного позже)</p>
  <pre>System.out.printnl(10 + 20); // Выведется 30</pre>
  <p></p>
  <p>В последним примере мы вывели значение операции сложения двух значений 10 и 20, вывод конечно же будет 30, но если мы обвернем все в кавычки у нас получится строка &quot;10 + 20&quot;.</p>
  <pre>System.out.println(&quot;10 + 20&quot;); // Выведется 10 + 20</pre>
  <p>Мы можем складывать строчки</p>
  <pre>System.out.println(&quot;Первая строка&quot; + &quot;Вторая строка&quot;); // Вывод будет Первоя строкаВторая строка</pre>
  <p>Тут возникает одна проблема, между двумя строчками нету пробела. Есть три способа для решения:</p>
  <ol>
    <li>Поставить пробел в конец первой строки.</li>
  </ol>
  <pre>System.out.println(&quot;Первая строка &quot; + &quot;Вторая строка&quot;);</pre>
  <p>    2. Поставить пробел в начало второй строки.</p>
  <pre>System.out.println(&quot;Первая строка&quot; + &quot; Вторая строка&quot;);</pre>
  <p>    3. Между строками вставить еще одну строку с пробелом &quot; &quot;.</p>
  <pre>System.out.println(&quot;Первая строка&quot; + &quot; &quot; + &quot;Вторая строка&quot;);</pre>
  <blockquote>Пробел тоже является символом</blockquote>
  <p></p>
  <h3>Экранирование символов</h3>
  <p>Существует несколько специальных символов. Любой из символов можно вставить в любое место строки.</p>
  <p>\n - символ переход на следующую строку</p>
  <p>\t - символ табуляции. Равен 4-ем пробелам.</p>
  <p>Есть некоторые операторы, которые мы не можем вставить в строку, например кавычки &quot;, одинарные кавычки &#x27;, обратный слэш \.</p>
  <p>Чтобы их вывести перед нужным символом поставите обратный слэш \</p>
  <pre>System.out.println(&quot;\&quot;&quot;); // Вывод одинарной кавычки &quot;
System.out.println(&quot;\&#x27;&quot;); // Вывод одинарной кавычки &#x27;
System.out.println(&quot;\\&quot;); // Вывод обратного слэша \</pre>
  <p></p>
  <p></p>
  <p><br /></p>
  <figure class="m_column">
    <img src="https://teletype.in/files/e7/71/e771743d-be98-4eed-b248-f7861b5670e7.png" width="1920" />
  </figure>
  <p>Чтобы постоянно не писать объявление метода Main и System.out.println - можно использовать сниппеты (короткая запись) - пропишите psvm и нажмите TAB, для System.out.println() - sout и TAB.</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/2b/19/2b19e6c1-7d68-4c96-9e60-e5cb7f1cc99b.gif" width="623.5" />
  </figure>
  <p></p>
  <p></p>
  <p></p>
  <figure class="m_column">
    <img src="https://teletype.in/files/6f/97/6f97e0d4-9aa1-42d0-b5e4-a40726d90c4a.png" width="1920" />
  </figure>
  <p>В Java, как и во многих языках, есть возможность комментировать код. Они нужны, чтобы сделать какие-то пометки, для повышения читаемости кода.</p>
  <p>Есть два вида комментариев, много строчный и одна строчный<br />Синтаксис:</p>
  <pre>// Одна строчный комментарий

/*
Много 
строчный
комментарий
*/ </pre>
  <p>При компиляции комментарии игнорируются, они не как не влияют на работу программы.</p>
  <p>Также вы можете закомментировать какую-то часть кода, если вам нужно на время отключить какой-то функционал.</p>
  <p>Горячая клавиша для создания комментариев - выделяете часть, которую хотите закомментировать и ctrl + /</p>
  <p></p>
  <p></p>
  <p></p>
  <figure class="m_column">
    <img src="https://teletype.in/files/48/fb/48fb9c97-9b12-4658-a765-24439fa4f3cc.png" width="1920" />
  </figure>
  <p><strong>Переменные </strong>- это область памяти в которой хранится информация. Звучит немного сложно, но на деле - это некие коробочки для данных. При помощи переменных мы можем записывать и считывать какие-либо данные.</p>
  <p>Для создания переменной нужно указать тип данных. Давайте разберемся с этим понятием.</p>
  <p>Для чего они вообще нужны?<br />Если мы представляем переменную как коробку для данных - значит мы должны описать какая она будет. </p>
  <p>Возможные значения<br />Каждый тип хранит конкретные значение к примеру числовой хранит числа, строковый - строки и т.д.</p>
  <p><br />Размер<br />Надеюсь вы знакомы с единицами измерения в компьютере, вот вам таблица:</p>
  <figure class="m_original">
    <img src="https://teletype.in/files/8f/7e/8f7eec6b-8b2e-47c6-ade6-c2ed134be761.png" width="800" />
  </figure>
  <p></p>
  <p></p>
  <p>Чтобы создать коробку для данных, нам конечно нужно знать какого она должна быть размера. </p>
  <p>Разные типы данных судя из размера и возможных значений предоставляет диапазон данных который мы можем запихнуть в переменную.</p>
  <p>Вы узнали основные характеристики типов данных, теперь давайте познакомимся конкретно с ними.</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/c3/d5/c3d5c92c-cb73-4df8-be4e-faaf276ba76c.png" width="720" />
  </figure>
  <p>Рассмотрим таблицу <br />int, числовой тип данных, хранит целые числа в диапазоне от -2147483648 до 2147483647 (не пугайтесь, вы легко запомните диапазон, когда узнаете принцип кодирования данных), весит 32 бита или 4 байта.</p>
  <p>double, числовой тип данных, хранит числа с плавающей запятой (числа с дробной частью) весит 64 бита или 8 байт.</p>
  <p>string, строковый тип данных, хранит строку, можно записать любые символы в кодировке UNICODE (всемирная кодировка, которая хранит все языки и символы), вес зависит от количества символов, каждый символ + 8 бит или 1 байт.</p>
  <p>Для начала трех типов будет достаточно, позже вы узнаете и другие.</p>
  <p></p>
  <p>Теперь создадим переменную</p>
  <p>Синтаксис:</p>
  <pre>ТипДанных ИмяПеременной;</pre>
  <p>Создание переменно типа int и именем num</p>
  <pre>int num;</pre>
  <p>Создание переменной типа String и именем str</p>
  <pre>String str;</pre>
  <p>Обратите внимание, что тип данных String пишется с большой буквы. </p>
  <p>Создание переменной типа double и именем doubleNum</p>
  <pre>double doubleNum;</pre>
  <p></p>
  <p>Правила именования переменных</p>
  <ol>
    <li>Первый символ не может быть цифрой</li>
    <li>Может содержать любые символа алфавита(русский язык тоже поддерживается), цифры (кроме первого символа), знаки подчеркивания &quot;_&quot; (также кроме первого символа) и знак доллара &quot;$&quot;</li>
    <li>Не может быть аналогично ключевым словам Java</li>
  </ol>
  <p><br /></p>
  <p>Запись данных в переменную </p>
  <p>Синтаксис:</p>
  <pre>Имя = Данные;</pre>
  <p>Присвоим переменной num значение 1</p>
  <pre>num = 1;</pre>
  <p>Присвоим переменной str значение Hello</p>
  <pre>str = &quot;Hello&quot;;</pre>
  <p>Напоминаю, что при указании значения для string используются кавычки</p>
  <p>Присвоим переменной doubleNum значение 3.14</p>
  <pre>doubleNum = 3.14;</pre>
  <p>Остаток указывается после точки (в типе данных double, всегда должно быть значение после точки, если дробной части нету - пишется 0)</p>
  <p><br /></p>
  <p>Создание переменной и выделения для нее памяти называется - <strong>инициализацией</strong></p>
  <p>А указание значения для переменной называется - <strong>определение переменной</strong> </p>
  <p><br /></p>
  <p>Также мы можем инициализировать и определить переменную сразу</p>
  <pre>int variable = 10;</pre>
  <p><br /></p>
  <p>Теперь мы можем обращаться к данным с помощью имени переменной</p>
  <p>Выведем на экран нашу переменную </p>
  <pre>System.out.println(num);</pre>
  <p>Вывод: 1</p>
  <p><br /></p>
  <p>Также в переменную можно записывать результат вычислений (про вычисления вы узнаете в следующей статье)</p>
  <pre>a = 1 + 1;</pre>
  <p>в переменную a запишется 2</p>
  <p></p>
  <p></p>
  <figure class="m_column">
    <img src="https://teletype.in/files/08/d8/08d8fffd-ffe4-41b6-9f3f-3b7abb4cbbf7.png" width="1920" />
  </figure>
  <p>Константы - это переменные, которым нельзя изменить значение</p>
  <p>Для создания константы перед типом данных используется оператор final</p>
  <p>Имя константы стоит называть заглавными буквами (вы можете не соблюдать правило, это лишь рекомендация)</p>
  <p>При инициализации константы, сразу же определяйте ее, иначе значение будет неопределенным</p>
  <p>Синтаксис:</p>
  <pre>final ТипДанных Имя = Значение;</pre>
  <p></p>
  <p>Создадим константу типа int с именем MYCONST и значением 100</p>
  <pre>final int MYCONST = 100;</pre>
  <p>Многие ошибочно считают, что константы ускоряет и облегчает программу - это не так. Константы созданы, чтобы случайно не изменить данные, которые не должны изменяться.</p>
  <p></p>
  <p></p>
  <figure class="m_column">
    <img src="https://teletype.in/files/7e/77/7e77e295-7f41-4c19-bdd4-4229c299c43b.png" width="1920" />
  </figure>
  <p>Вкратце пробежимся по пройденным темам.</p>
  <p>Для разработки нужно установить JDK (java development kit - Java набор для разработки) в которую входят все нужные программы для разработки, JRE (java runtime environment) среда выполнения (JRE необходимо для запуска программа на Java).</p>
  <p>Для работы с самим кодом, вам нужен текстовый редактор или полноценная среда для разработки (IDE - integrated development environment).</p>
  <p>Мы написали первую программу с выводом Hello World.</p>
  <p>Рассмотрели два сниппета (для быстрой записи) psvm  (для написания метода main) и sout (для написания оператора вывода).</p>
  <p>Узнали про одна строчные и много строчные комментарии.</p>
  <p>Рассмотрели переменные и типы данных, которые позволяют хранить информацию. И Познакомились с константами.</p>
  <p></p>
  <p>  К каждой статье будет прикреплена PDF версия и txt версия (должно быть удобно если вы ведете конспект в электронном виде), а в формате PNG краткий справочник по темам данной статьи и предыдущих.<br />  Также в формате PDF будет прикреплена практическая часть с заданиями и подробная статья с решениями и разбором задач.<br />  Будет и видео формат данной статьи на <a href="https://www.youtube.com/channel/UCz_rQuX5uPHINBiBZadNWog" target="_blank">канале FLS</a>.</p>
  <p>Дополнительный материал</p>
  <p><a href="https://teletype.in/" target="_blank">Практика к этой статье</a><br /></p>
  <p>Вы можете оставить любой вопрос в комментариях (не забудьте оставить ваши контакты)<br />Или <br />В <a href="http://t.me/fls_Chat" target="_blank">Telegram чате</a> <br />В <a href="https://vk.me/join/AJQ1dziYpxYkr4qkgm5SG0es" target="_blank">Vk чате</a><br />В Discord канале (напишите в один из чатов и вам вышлют приглашение)</p>

]]></content:encoded></item></channel></rss>