12 августа 2011 12.08.11 4 2344

Туториал по java №2

+8

<< >>

Присвоение значений
[вставка не в тему]
Как вы уже должны были знать, в java a=2; вовсе не означает, что a = 2. Это значит, что а ТЕПЕРЬ = 2.

Поэтому запись а = а + 1; вполне правильна:
Новое значение переменной а теперь равно старое значение переменной а + 1

Типы переменных. Совершенствование калькулятора.

Как вы уже поняли, в java есть несколько типов переменных. Сейчас давайте познакомимся со всеми базовыми:

Цельночисленные:
[Мою красивую табличку порезали блоги :(]
Название Минимальное… максимальное значение
long -9, 223, 372, 036, 854, 775, 808… 9, 223, 372, 036, 854, 775, 807

int -2, 147, 483, 648… 2, 147, 483, 647

short -32, 768… 32, 767

byte/char* -128… 127

* Этот тип содержит в себе символ, закодированный через ASKII код(0-127 – основная часть(английская+цифры+спец. символы); -128 – -1 – дополнительная(региональная))

Дробные:
Название Минимальное… максимальное значение
double 1. 7е-308… 1. 7е+ 308
float 3. 4е-038… 3. 4е+ 038

Почему еще существуют цельночисленные типы? Ведь они гораздо “меньше”, чем double/float!
Тут все дело в точности… На пример число 123 в дробном типе хранятся как 1.23е2, а в цельно численном – 123. Количество цифр после точки ограничено, поэтому числа длиннее 10~15 знаков будут округляться (с этим связан феномен Farlands в Minecraft).

Все оценки — приблизительные, типы иногда меняются (точные значения можно найти у oracle), но из всего этого нам надо знать только int, long и double. Ну, может еще и char.

Еще есть один базовый тип — boolean. Он может хранить в себе всего 2 значения true/false(правда/ложь;1/0; вкл./выкл.) Но он нам потребуется только в 3 туториале.

На данный момент наш калькулятор считает только в целых числах, если попробовать ввести дробное число (через точку), то eclipse окатит вас помоями ошибками. Поэтому стоит заменить тип переменных с int на double (так-же поменяйте scanner.nextInt на scanner.nextDouble для ввода дробей).

Математика в java

В java есть все стандартные мат действия, записываются они как + — * /, есть специальное действие — остаток от деления, записывается как %.

Поэкспериментируйте с этим.

Специальная математика

Во всех примерах начальное значение a = 5 — то, что будет в консоли

Операция ++ — увеличение на единицу(эквивалент а = а + 1;):
a++;
System.out.print(a); — 6
___
++a;
System.out.print(a); — 6
___
НО!
System.out.print(a); — 5
System.out.print(a++); — 5
System.out.print(a); — 6
___
НО!
System.out.print(a); — 5
System.out.print(++a); — 6
System.out.print(a); — 6

Если словами, то ++а сначала увеличивает, потом выполнят оставшиеся действия, а а++ сначала выполняет действия, а потом увеличивает.

Аналогично есть а-- и --а.

Операция а += x; эквивалентна а = а + x;

Аналогично есть -= *= /= %=

Продвинутая математика

В любом месте пишем math. и выбираем! Синусы, косинусы, округления, градусы и прочие интегралы у нас в руках!

Краткая справка по меню авто завершения:
Math.max(double a, double b): double

В скобках через запятую — типы аргуменов(то, что в функцию посылаем). Через: тип выходного значения функции(то, что приходит из функции после завершения ее работы в место вызова)

Покажу один пример на базе кода калькулятора:

  1. import java.util.Scanner;
  2.  
  3.  
  4. public class Tutorial {
  5.        
  6.         public static void main(String[] args) {
  7.                 double num_1, num_2;
  8.                 Scanner scanner = new Scanner(System.in);
  9.                 System.out.print(«Введите первое число: „);
  10.                 num_1 = scanner.nextDouble();
  11.                 System.out.print(“Введите второе число: „);
  12.                 num_2 = scanner.nextDouble();
  13.                 System.out.print(“Максимальное число:\n» + Math.max(num_1, num_2));
  14.  
  15.         }
  16.        
  17. }

Например: num_1 = 4.0; num_2 = 4.1 => функция max(4.0, 4.1) превращается в 4.1 => System.out.print(«Максимальное число:\n» + 4.1);


Лучшие комментарии

Это — следующий тутор. Пишу прямо щас.

args — аргументы с которыми запускается программа. Например в винде есть стандартная утилита — ping.exe, а чтобы пропинговать адрес надо послать его как аргумент (ping.exe blogs.stopgame.ru)

подобным образом запустить нашу прогу, то строка blogs.stopgame.ru будет в args

остальное потом, это сложнее
Мдя… мало кода, много текста…

Люди, если вы прочитаете и поймете это, то обещаю в туториале 3 показывать все только на примерах!

Впереди самое интересное: циклы, условия, строки, интерфейс, и прога для одного сайта… (хоть и не на заказ)

И кстати, если даже вы не заинтересованы в разработке плагинов под сервер minecraft, почитайте мои будущие туторы: кайф программирования именно в программировании ради цели! (моя цель меня довела до 317 строк кода/10005 символов/9,77 КБ за 5 дней, continue testing.......)

И каждую мельчайшую проблему обсуждаем в комментах! Тут не должно быть непонимания!
Читай также