Strona 1 z 2

Pierwszy program

Napisane: sobota, 26 sierpnia 2017, 20:48
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?

Re: Pierwszy program

Napisane: niedziela, 27 sierpnia 2017, 11:35
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.

Re: Pierwszy program

Napisane: niedziela, 27 sierpnia 2017, 17:05
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);
            
    }
    
}

Re: Pierwszy program

Napisane: niedziela, 27 sierpnia 2017, 20:46
przez Morfidon
No i gitara :)

Re: Pierwszy program

Napisane: niedziela, 27 sierpnia 2017, 21:26
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++;    
           
        }
    }
}


Re: Pierwszy program

Napisane: niedziela, 27 sierpnia 2017, 22:38
przez Morfidon
Na razie bez rozwiązania....

Tylko podpowiedź:

i * 10

Pozdrawiam :)

Re: Pierwszy program

Napisane: niedziela, 27 sierpnia 2017, 22:53
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++;    
           
        }
    }
}


Re: Pierwszy program

Napisane: niedziela, 27 sierpnia 2017, 23:13
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ć :)

Re: Pierwszy program

Napisane: poniedziałek, 28 sierpnia 2017, 06:27
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?

Re: Pierwszy program

Napisane: poniedziałek, 28 sierpnia 2017, 09:45
przez Morfidon
Tak :)