Pierwszy program

Dyskusje na temat Javy.
mario13021
Początkujący
Początkujący
Posty: 13
Dołączył(a): sobota, 26 sierpnia 2017, 20:33

Pierwszy program

Post przez mario13021 »

Witam!

Jestem tu nowy i kompletnie zielony jeśli chodzi o programowanie :) Postanowiłem jednak spróbować tego, bo strasznie mnie to ciekawiło. Wykupiłem kurs Javy i po 17 lekcjach zrobić sobie jakieś zadanie. A więc tak:

Miało być to coś na zasadzie ustalania hasła:

1. program ma sprawdzić czy oba pola są wypełnione
2. program ma sprawdzić czy wyrazy są identyczne

Oto mój kod:

Code: Zaznacz cały

package xxx;

/**
 *
 * @author mariuszmilewski
 */
public class Xxx {

    
    public static void main(String[] args) {
       
        String a = "abc"; // password
        String b = "abc"; // confirm password
        
        String c = (a == "") || (b == "") ? "puste pole!!" : ""; // checking if not empty
            System.out.println(c);
            
        
        
        String d = a != b ? "niepoprawne" : "poprawne"; // checking if the same
            System.out.println(d);

            
            
    }
    
}
Ogólnie program działa poprawnie tyle, że jeśli pola są uzupełnione to założenie było takie aby program nic nie wyświetlał. No i w sumie tak jest tylko, że jak odpalę program to na konsoli wygląda to tak jakby była tam po prostu pusta linijka. Da się to jakoś zrobić tak żeby program nie wyświetlał kompletnie nic?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Pierwszy program

Post przez Morfidon »

Cześć :)

Witaj w świecie programowania!

Twój program działa tak, ponieważ wartość zmiennej 'c' zawsze jakaś jest, nawet jeśli jest pusta to jednak 'pustość' to też jakaś wartość.

Przesyłasz tą zmienną na 'wyjście' (konsole) korzystając z System.out.println. Pogrubiłem 'ln' bo ln to skrót z ang. od 'line'. Ta komenda ma na zadanie wypisać na konsoli zawartość (w Twoim wypadku pustkę), a później dodać ln, czyli nową linię.

Jeśli skorzystasz z

Code: Zaznacz cały

System.out.print(c);
to program zadziała tak jak myślisz.

Jednak wtedy nie doda linii, nawet jeśli wypiszesz jakiś tekst.

Aby rozwiązać tę sytuację najlepiej skorzystać z instrukcji warunkowych. Stwórz warunek w instrukcji warunkowej: "Jeśli zmienna c jest pusta to po prostu nie wyświetlaj komunikatu"

Pozdrawiam serdecznie,

Arkadiusz W.
mario13021
Początkujący
Początkujący
Posty: 13
Dołączył(a): sobota, 26 sierpnia 2017, 20:33

Re: Pierwszy program

Post przez mario13021 »

Dzięki za podpowiedź :) wszystko działa tak jak chciałem :)

Code: Zaznacz cały

package xxx;

/**
 *
 * @author mariuszmilewski
 */
public class Xxx {

    
    public static void main(String[] args) {
       
        String a = "abc"; // password
        String b = "abc"; // confirm password
        String c = (a == "") || (b == "") ? "puste pole!!" : ""; // checking if not empty
        
            if (c == "puste pole!!") 
                System.out.println(c);   
              
        String d = a != b ? "niepoprawne" : "poprawne"; // checking if the same
           
            if (c != "puste pole!!")
                System.out.println(d);
            
    }
    
}
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Pierwszy program

Post przez Morfidon »

No i gitara :)
mario13021
Początkujący
Początkujący
Posty: 13
Dołączył(a): sobota, 26 sierpnia 2017, 20:33

Re: Pierwszy program

Post przez mario13021 »

Mam jeszcze pytanko o ćwiczenie związane z tym aby kolejna liczba w tabeli była zwiększona o 10. Czy takie rozwiązanie jest optymalne?

Code: Zaznacz cały

package wielokrotnosc10;

/**
 *
 * @author mariuszmilewski
 */
public class Wielokrotnosc10 {


    public static void main(String[] args) {
    
       int i = 0;
               
       int[] tab;
       tab = new int[10];


       while (i < tab.length)
       {
           if (i == 0)
                {
                tab[i] = tab[i] + 10;
                }
           
           else
                {
                tab[i] = tab[i - 1] + 10; 
                }
                
           System.out.println(tab[i]);
           i++;    
           
        }
    }
}

Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Pierwszy program

Post przez Morfidon »

Na razie bez rozwiązania....

Tylko podpowiedź:

i * 10

Pozdrawiam :)
mario13021
Początkujący
Początkujący
Posty: 13
Dołączył(a): sobota, 26 sierpnia 2017, 20:33

Re: Pierwszy program

Post przez mario13021 »

sorry, masz rację... mój błąd... coś w ten desen?

Code: Zaznacz cały

package wielokrotnosc10;

/**
 *
 * @author mariuszmilewski
 */
public class Wielokrotnosc10 {


    public static void main(String[] args) {
    
       int i = 0;
               
       long[] tab;
       tab = new long[10];


       while (i < tab.length)
       {
           if (i == 0)
                {
                tab[i] = tab[i] + 10;
                }
           
           else
                {
                tab[i] = tab[i - 1] * 10; 
                }
                
           System.out.println(tab[i]);
           i++;    
           
        }
    }
}

Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Pierwszy program

Post przez Morfidon »

Nie do końca...

Zauważ, że 'i' rośnie o 1 za każdym razem. Skoro rośnie o 1 to mnożąc 'i' przez 10 zawsze masz liczbę o 10 większą, którą możesz przypisać :)
mario13021
Początkujący
Początkujący
Posty: 13
Dołączył(a): sobota, 26 sierpnia 2017, 20:33

Re: Pierwszy program

Post przez mario13021 »

no tak... chyba trochę pokręciłem te zadanie :) więc chodzi o to aby tab[0] = 0, a potem każde kolejne było większe o 10?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Pierwszy program

Post przez Morfidon »

Tak :)
Post Reply