package alx.p04_operatory;

import javax.swing.JOptionPane;

public class ZastosowaniaLeniwychOperatorow {

	public static void main(String[] args) {
		String imie = JOptionPane.showInputDialog("Jak masz na imię?");

		if(imie != null && imie.length() <= 3) {
			JOptionPane.showMessageDialog(null, "Masz krótkie imię");
		}

		// Gdybym nie sprawdzał czy napis nie jest nullem,
		// to w przypadku Cancel dochodziłoby do błedu NullPointerException (NPE)
		// w momencie próby wywołania length()
//		if (imie.length() <= 3) {
//			JOptionPane.showMessageDialog(null, "Masz krótkie imię");
//		}
		
		// Gdybym zamiast "leniwego" && użył "gorliwego" &
		// to także doszłoby do błędu, bo Java sprawdzałaby prawą stronę warunku nawet wtedy gdy lewa jest fałszem
//		if(imie != null & imie.length() <= 3) {
//			JOptionPane.showMessageDialog(null, "Masz krótkie imię");
//		}
		
		String jezyk = JOptionPane.showInputDialog("Jaki jest Twój ulubiony język programowania?");
		
		if(jezyk != null && jezyk.equals("Java")) {
			JOptionPane.showMessageDialog(null, "Brawo");
		} else {
			JOptionPane.showMessageDialog(null, "Źle");
		}
		
		// jeśli chodzi o tę konkretną sytuację, to pisząc w tej kolejności zapobiegamy wyjątkowi NPE
		if("Java".equals(jezyk)) {
			JOptionPane.showMessageDialog(null, "Brawo");
		} else {
			JOptionPane.showMessageDialog(null, "Źle");
		}
	}

}
