Числовые типы данных Java перечислены в следующей таблице:
Тип
Описание
Количество байтов
int
целый
4
float
вещественный
4
char
символьный
2
short
короткое целое
2
long
длинное целое
8
double
длинное вещественное
8
byte
байт
1
Объвление переменных происходит следующим образом:
int a; //Переменная a целого типаfloat f1, f2=55.88; //Две переменные вещественного типа
В Java переменным сразу при объявлении задаются стандартные значения (ноль для числовых переменых, false для логических). Так, в приведенном примере в f1 будет 0, а в f2 - 55.88.
Для переменных числового типа определены стандартные арифметические операции: +, -, *, /. Назначение их понятно - все, как в других языках. Как и в других C-подобных языках, есть остаток от деления и операции уделичения/уменьшения на один (%, ++, --). Вот пример:
static int k=21, w=10;
...
int z=k%w;
System.out.println(z); //z=1
k++;
System.out.println(k); //k=22
w--;
System.out.println(w); //w=9
Операторы ++ и -- можно писать как после, так и до переменной. Чаще всего это все равно, но иногда порядок важен. Вот пример:
static int k=10, w=10;
...
int z=k++;
System.out.println(z); //z=10, k=11
z=++n;
System.out.println(z); //z=11, n=11
Т. е. у двух форм оператора ++ (это относится и к --) разное возвращаемое значение - в одном случае первоначальное число, а в другом - измененное.
Переменные логического типа могут принимать значение или true (истина), или false (ложь). Сразу обратите внимание, что нельзя вместо true и false писать нулевое и ненулевое значения (как, например, это можно делать в C/C++). Такое замены в Java нет.
Для переменных логического типа существуют операции & (и), && (и), | (или), || (или), ! (не), ^ (исключающее или). Обратите внимание, что для "и" и "или" существует два варианта. Об их различии чуть ниже. Пока же приведем таблицы истинности:
Оператор
Описание
Результат
&& или &
и
Результат true только тогда, когда оба операнда равны true
|| или |
или
Результат false только тогда, когда оба операнда равны false
^
исключающее или
Результат true только тогда, когда ровно один из операндов равен true
!
не
Изменяет значение на противоположное (true на false, false на true)
==
логическое равно
Применяется к переменым любого типа. Результат true, если оба операнда равны true, false - в противном случае.
Теперь о различии между && и & (|| и |). Операторы & и | - это обычные логические операторы, && и || - сокращенные. Вот конкретный пример для && и &:
...
k=20;
if (k<0 & k/0>1) //деление на 0 и возникнет ошибка
{
System.out.println(k);
}
if (k<0 && k/0>1) //деление на 0, но ошибки нет
{
System.out.println(k);
}
...
Т. е. в первом случае (с одним &) проверяются все части логического выражения, а во втором (с двумя &&) правая часть не проверяется (так как левая равна false).
Вот пример и для "или":
...
k=20;
if (k>0 | k/0>1) //деление на 0 и возникнет ошибка
{
System.out.println(k); //z=11, n=11
}
if (k>>0 || k/0>>1) //деление на 0, но ошибки нет
{
System.out.println(k); //z=11, n=11
}
...
Здесь во втором случае так как левая часть равна true, то правая часть вообще проверяться не будет (и ошибка, соответственно не возникнет).
Также обратите внимание, что в качестве логического равно (т. е. когда мы отвечаем на вопрос, верно ли что что-то равно чему-то) используется двойное равно (==). Одинарное же равно используется для присваивания:
if(a==b){ //Если a равно b
{
a=c; //В a записываем c
}