Java - instrukcja warunkowa

in #pl-artykuly7 years ago (edited)

Witam. W dzisiejszym poście zobaczysz jak kazać komputerowi podejmować decyzje. No to do roboty.

Jeżeli nie widziałeś poprzednich postów zobacz je. :)


DQmaRwagdbWrrTD2BisW7KB8b6gSeNobyfyo7PB9duY3bV4.jpg


Ostatnio poznaliśmy zmienne. Teraz je musimy jakoś wykorzystać. Więc napiszmy program który będzie wpuszczał po podaniu wieku na sylwestra.

Rozpiszmy najpierw jak będzie wykonywany nasz program.

  1. Najpierw poprosimy użytkownika o podanie wieku.
  2. Po podaniu przez użytkownika wieku komputer ma podjąć decyzję czy użytkownik zostanie wpuszczony. Warunkiem wejścia będzie ukończone 18 lat.


    W ostatniej lekcji omówiliśmy pierwszy punkt, więc go chwilowo pominiemy. Zajmiemy się teraz podjęciem decyzji przez komputer. Aby komputer podjął decyzję należy skorzystać z tzw. ifa.
public class New{
       public static void main(String[] args){
               if(/*Warunek*/){
               //Jeżeli warunek będzie prawdziwy wszystko co w tych klamerkach się wykona
               }
       }
}

Widzimy jak wygląda if, ale jak wygląda warunek i co oznacza, że jest prawdziwy???

Warunki wyglądają tak: a>=0, a==b, c!=43

Że co??? a większe równe 0. Już tłumacze w matematyce mamy taki znaczek ≥ , ale dlaczego tam jest a == b, zamiast a = b. W programowaniu jedno równa się już zajęte. Przypomnij sobie ostatnią lekcję tam przypisywaliśmy tym znakiem wartość do zmiennej i komputer by się mylił. A co to jest != ? To jest ten o znaczek ≠(czyli że liczby są różne).


A co oznacza że warunek jest spełniony??? Jeżeli będziemy mieli taki warunek a == 10, czyli jeżeli zmienna a będzie miała wartość 10 to warunek będzie spełniony. Jeżeli warunek będzie taki b != a, czyli jeżeli zmienna b będzie miała inną wartość niż zmienna a to warunek będzie spełniony.

Piszemy program

import java.util.Scanner;

public class New {
    public static void main(String[] args){
        Scanner odczyt = new Scanner(System.in);

        System.out.print("Podaj swój wiek: ");
        int wiek = odczyt.nextInt();
        
        if(wiek >= 18)//Jeżeli wiek jest większy lub równy 18
        {   
            System.out.println("Witam na sylwestrze.");
        }
    }
}

Czyli jeżeli użytkownik poda wiek większy niż 17, to komputer wita użytkownika na sylwestrze. Ale przydałoby się coś jeżeli użytkownik wprowadzi wiek mniejszy od 18.

if(wiek >= 18)
{   
        System.out.println("Witam na sylwestrze.");
}
if(wiek < 18)
{   
        System.out.println("Jesteś za młody.");
}

Ale po co wstawiać tam warunek skoro możemy powiedzieć komputerowi : "Komputer jeżeli zmienna wiek będzie większa lub równa 18 to wpuść ,w przeciwnym razie napisz, użytkownikowi że jest za młody". Czyli napisać taki kod.

import java.util.Scanner;

public class New {
    public static void main(String[] args){
        Scanner odczyt = new Scanner(System.in);

        System.out.print("Podaj swój wiek: ");
        int wiek = odczyt.nextInt();
        
        if(wiek >= 18)//Jeżeli wiek jest większy lub równy 18
        {   
            System.out.println("Miłego sylwestra użytkowniku");
        }
        else//W przeciwnym razie
        {
            System.out.println("Jesteś użytkowniku za młody");
        }
    }
}

Nasz kod jest gotowy, ale powiększymy go. Powiedzmy że jeżeli nasz użytkownik będzie miał mniej niż 18, ale więcej niż 15 to będzie mógł oglądać koncerty w telewizji. Jak będzie wyglądał kod???

import java.util.Scanner;

public class New {
    public static void main(String[] args){
        Scanner odczyt = new Scanner(System.in);

        System.out.print("Podaj swój wiek: ");
        int wiek = odczyt.nextInt();
        
        if(wiek >= 18)//Jeżeli wiek jest większy lub równy 18
        {   
            System.out.println("Miłego sylwestra użytkowniku");
        }
        else if(wiek >= 15)//W przeciwnym razie jeżeli wiek jest większy lub równy 15
        {
            System.out.println("Na sylwestra cię nie wpuszczę ale możesz pooglądać telewizję");
        }
        else//W przeciwnym razie
        {
            System.out.println("Jesteś użytkowniku za młody");
        }
    }
}

Jak ja nauczyłem się programować


Teraz powiem co według mnie jest najważniejsze w nauce programowania. W nauce programowania najważniejsze jest eksperymentowanie. A czemu tak uważam? Bo tak się nauczyłem programować. Nawet nie pamiętam, ale miałem chyba wtedy 8, 9 lat gdy dowiedziałem się że tato mojego kolegi robi zajęcia z robotyki dla kolegów syna(za darmo) . Więc poszedłem. Na początku korzystaliśmy z klocków lego mindfstorms ev3 i jego oprogramowania. Gdzieś po roku przeszliśmy do javy(I tak zamiast robotyki stało się programowanie). Po dwóch miesiącach sam zacząłem eksperymentować aż doszło do tego, że moi koledzy robili pętle a ja bawiłem się JFramami(Dojdziemy do tego nie bój się). Po prostu natrafiałem na coraz ciekawsze rzeczy i w taki magiczny sposób moi koledzy piszą w 2 językach dochodząc nieco wyżej niż pętle a ja piszę płynnie w 4 językach i nie płynnie w kilku innych (bo za mało w nich piszę). Czytam książki typu Akademia Sieci Cisco. Bo eksperymentowałem. Ja nie mówię, że jestem jakimś znawcą. Bo mam tylko 15 lat i małe doświadczenie w pisaniu programów w zespole i tak mogę wymieniać. Ale uważam że mogę przekazać jakieś podstawy. Ale według mnie najważniejsze jest eksperymentowanie. Ale wiem że znajdzie się tu wiele osób bardziej doświadczonych ode mnie i proszę właśnie o opinie na temat moich artykułów.


Przy okazji bardzo dziękuję panu J.B. za to że mnie nauczył programować. Oraz życzyć tobie odbiorco miłego sylwestra.

P.S.
Czy może to być w pl-artykuly???

Sort:  

Powodzenia, dąż do celu :)

Przyznam, że jak na 15 lat to wygląda to całkiem fajnie.
Jakie znasz jeszcze języki? Masz jakieś ciekawe projekty na koncie?

Języki w których najchętniej piszę to c++,c#,php i jak można zauważyć java, jeszcze znam htmla potrafię zrobić prostą stronę i nie za bardzo mnie to pociąga. A z projektów to w szkole mam projekt gimnazjalny a ja mając szczęści dostałem za opiekuna pana z informatyki który zaproponował zrobić stronę internetową o algorytmice(drumz.ayz.pl/algorytmy) jeszcze nie dokończone gdzieniegdzie 404. Teraz jestem w trakcie pisania aplikacji w c# kontrolującej komputer. I raz na jakiś czas się bawię silnikiem graficznym. Z tego co wie m mam również uczestniczyć jako programista w studiu mającym powstać w miejscowym liceum.