Helsingin yliopisto /Tietojenkäsittelytieteen laitos
581258-1 Johdatus ohjelmointiin
(c)Arto Wikla, 1997

Pascal-ohjelmoijan oikotie Javan alkeisiin

(Muutettu viimeksi 10.9.1997)

Javassa on C-kielestä perityt lause- ja lauseketyypit. Valikoima ja käyttötavat ovat huomattavasti Pascalia rikkaammat. Tämän sivun esimerkit antavat vain pienen näytteen Javan rakenteista. Pascal-taustaiselle ohjelmoijalle vertailu on kuitenkin varmasti hyödyllinen.

Muuttujien esittely

Pascal:
     var i, j: integer;
         r: real;
         b: boolean;
         c: char;
         haayoaie: real;

Java:

     int i, j;  // tai "long i;", "short i;", "byte i;"
     float r;   // tai "double r;"
     boolean b;
     char c;
     double hääyöaie; // myös ääkköset ovat sallittuja!
//------------------------------------------------------
/* Myös alkuarvo voidaan antaa:
     int a = 1, j = 7;
     float r = 3.14;
     boolean b = true;
     char c = '#';
*/

Koottu lause

Pascal:
    begin   end

Java:

     {   }

Ehdollinen lause

Pascal:
    if (a = b) and (c <> d) or (e >= f) then
       g := g + 1
    else
       h := h + 2;

Java:

     if (a == b & c != d | e >= f)
        g++;     // tai "g = g +1;"
     else
        h += 2;  // tai "h = h + 2"
//------------------------------------------
/*  - "&&" ja "||" ovat ehdolliset and ja or!
    - g:n kasvattaminen voidaan tehdä myös:
         "g += 1;"  tai "++g"
*/

Alkuehtoinen toisto

Pascal:
     i := 7;
     while i < 1000 do
       begin
         writeln(i, ' Hip hei!');
         i := i + 7
       end

Java:

     i = 7;
     while (i < 1000) {
       System.out.println(i + " Hip hei!");
       i += 7;  // tai "i = i + 7;"
     }

Loppuehtoinen toisto

Pascal:
     a := 3;
     repeat
       b := a mod 2;
       a := a * a
     until a > 1000

Java:

     a = 3;
     do {
       b = a % 2;
       a *= a;  // tai "a = a * a;"
     } while (a <= 1000);  // !!

Askeltava toisto

Pascal:
     for i := 1 to 100 do
       writeln(i)

Java:

     for (i=1; i<=100; i++)
       System.out.println(i);
//-------------------------------------------------------
/* Javassa askelmuuttuja usein määritellään paikallisena:
     for (int i=1; i<=100; i++)

   Usein myös on tapana:
     for (int i=0; i<100; i++)
*/

Valintalause

Pascal:
     if luku in [1,2,3,9] then
       case luku of
         1, 2: c := 7;
         3: begin
              writeln('kissa');
              d := 9
            end;
         9: e := 5;
       end
     else
       writeln("kissa vie")

Java:

     switch (luku) {   // vain kokokonaisluku sallittu!
       case 1: case 2:
          c = 7;
          break;  // ilman tätä mennään seuraavaan!
       case 3:
          System.out.println("kissa");
          d = 9;
          break;
       case 9:
          e = 5;
          break;
       default:
          System.out.println("kissa vie");
          break; // ei oikeastaan tarpeen
     }

Ohjelma

Pascal:
     program Ohjelma(input, output);
       var r, s: real;
     begin
       r := 3.14;
       s := r * 2;
       s := s + 7;
       writeln('tulos on ', s)
     end;

Java:

     class Ohjelma {
       public static void main(String[] args) {
         double r = 3.14;
         double s = r * 2;
         s += 7;
         System.out.println("tulos on "+ s);
       }
     }


Takaisin luvun 1 sisällysluetteloon.