13 августа 2011 13.08.11 18 4353

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

+18

<< >>

Условия

Условие в программировании – выражение, которое принимает 2 значения – true/false.
Эти значения можно хранить в переменной типа boolean (по имени математика Джоржа Буля).

Условный оператор

Условный оператор бывает двух типов: полный и краткий. Рассмотрим оба:
Краткая форма:

if(<условие>){
        <код>
}

Код выполняется если условие верно(true).

Полная форма:

if(<условие>){
<код 1>
}
else{
<код 2>
}

Если условие верно(true), то выполняется код 1. Иначе – код 2.

Есть еще один способ написать условие в java, но мы с ним познакомимся позже, давайте перейдем к способам задания условий.

Способы задания условий

Базовые проверки:

Равно — == (Символ = означает присвоение!)
Не равно — !=
Меньше, больше, меньше или равно, больше или равно — <, >, <=, >=

Также в качестве условий могут выступать переменные типа boolean

Boolean b = true;
if(b){
        <…>
}

И результаты работы функций (если они принадлежат к типу boolean):
К примеру, у каждой строки есть метод isEmpty(), проверяющий, пустая ли это строка.

String s = "";
if(s.isEmpty()){
        <…>
}

Второй способ проверки условий

Рассмотрим следующую программу (она проверяет, является ли число, введенное пользователем, нулем и выводит ответ):

  1. import java.util.Scanner;
  2.  
  3. public class Tutorial {
  4.         public static void main(String[] args) {
  5.                 int num = new Scanner(System.in).nextInt();
  6.                 if(num==){
  7.                         System.out.print(«Ноль»);
  8.                 }
  9.                 else{
  10.                         System.out.print(«Не ноль»);
  11.                 }
  12.                
  13.         }
  14.  
  15. }

С виду все легко, но функция вывода повторяется дважды. Мы же программисты! А программисты люди ленивые, поэтому они придумали МЕГА укороченный условный оператор:

Краткая форма: <Условие>?<замена если true>
Полная форма: <Условие>?<замена если true>:<замена если false>

Вся конструкция во время исполнения заменяется на соответствующую часть. Короче просто посмотрите и протестируйте:

  1. import java.util.Scanner;
  2.  
  3. public class Tutorial {
  4.         public static void main(String[] args) {
  5.                 int num = new Scanner(System.in).nextInt();
  6.                 System.out.print(num == ?«Ноль»:«Не ноль»);
  7.                
  8.         }
  9.  
  10. }

Логические операции

Над переменными и выражениями типа Boolean можно проводить логические операции:
И, ИЛИ, НЕ; &&,||,! в java соответственно(обычно для проверки нескольких условий сразу)

Действуют они также как и связки в русском языке:
И – должны выполняться И одно И второе условия
ИЛИ – должны выполняться ИЛИ одно ИЛИ второе условия (или оба)
НЕ – отрицание
Пускай A – одно условие, а B – второе.
Тогда построим таблицы для каждой функции:

A&&B->результат
false&&false->false
true&&false->false
false&&true->false
true&&true->true

A||B->результат
false||false->false
true||false-> true
false||true-> true
true||true->true

!A->результат
!false->true
!true-> false

Тутолиалы-то я пишу, но не знаю, понимают меня или нет. Поэтому я кину мини-задачку, а вы попробуйте в пм/комментах ее решить.

Надо написать калькулятор, поддерживающий все четыре основные мат. операции + синус. Выбор операции осуществляется вводом ее номера(1/2/3/4/5). Программа должна быть дружественна к пользователю, объяснять все форматы ввода и корректно отвечать на ошибки (кроме ввода неверного типа данных).


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

Давно хотел научится делать програмки!
if(num==)
тут идёт проверка переменной на значение по умолчанию? (т.е если num, к примеру, имеет тип string, то это будет проверка на null?
круто! продолжай в том же духе!
Молодца! В следующем туторе покажу пару вещей на примере твоего кода, ок?
оу… такого не знаю, но это из ряда неоч известных вещей, так что лучше уж нажать 4 кнопки, хотя-бы для читабельности.

[UPD]: Syntax error on token "==", Expression expected after this token. Все-таки нельзя.
Подскажите что я сделал не так?
такая же ошибка
Кстати, сравните кол-во комментов под первым и под вторым тутором. Как только начинается что-то серьезное, люди убегают сломя голову)

И, наверно, в январе у меня появится звуковуха и микрофон :-D
в смысле, если тип num-string, то if(num==) эквивалентно if(num== null) (т.е значению по умолчанию)?
Читай также