Twitter: @grzegg
Kategoria: java, Tagi: - .

Java – instrukcje wyboru (03)

Trzecia prezentacja do kursu „Wstęp do programowania”.
Treść: Przykład procesu tworzenia programu, schematy blokowe, instrukcje wyboru, operator warunkowy, porównanie łańcuchów znaków.

Ta strona jest częścią starego kursu Javy. Nowy kurs, pt. “Programowanie w Javie z elementami bioinformatyki dla poczatkujących”, jest znacznie rozszerzony i dostosowany fo Javy 8. Jego forma jest także znacznie bardziej przystępna dla korzystających wyłącznie z treści on-line. Dostępne materiały znajdziesz tutaj.


Kody źródłowe

Porównanie łańcuchów znaków (tekstu)


public class PorownanieTekstu {
	public static void main(String[] args) {
		// Porównywanie łańcuchów znaków (tekstu) z uwzględnieniem wielkości liter.
		String tekst = "kot";
		System.out.println("tekst.equals() kot: "+tekst.equals("kot"));
		System.out.println("tekst.equals() pies: "+tekst.equals("pies"));
		System.out.println("tekst.equals() KOT: "+tekst.equals("KOT"));

		// Porównywanie łańcuchów znaków (tekstu) z ignorowaniem wielkości liter.
		System.out.println("tekst.equalsIgnoreCase() kot: "+tekst.equalsIgnoreCase("kot"));
		System.out.println("tekst.equalsIgnoreCase() pies: "+tekst.equalsIgnoreCase("pies"));
		System.out.println("tekst.equalsIgnoreCase() KOT: "+tekst.equalsIgnoreCase("KOT"));
	}
}

Rozpoznawanie płci po chromosomach płciowych – wersja 1


import java.util.Scanner;

public class ChromosomyPlciVer1 {

	public static void main(String[] args) {
		//Prosta identyfikacja płci po kariotypie

		// tworzymy obiekt typu Scanner
		Scanner skaner = new Scanner(System.in);
		System.out.print("Podaj kariotyp: ");

		//Pobieramy kariotyp z klawiatury
		String kariotyp = skaner.nextLine();

		// Sprawdź czy kariotyp to "XY"
		if (kariotyp.equalsIgnoreCase("XY")) {
			// jeśli tak to wydrukuj "Samiec"
			System.out.println("Samiec");
		}
		// jeśli powyższy warunek nie został spełniony to sprawdź czy kariotyp to "XX"
		else if (kariotyp.equalsIgnoreCase("XX")) {
			// jeśli tak to wydrukuj "Samiec"
			System.out.println("Samica");
		}
		// jeśli powyższy warunek nie został spełniony to...
		else {
			// ... wydrukuj "???"
			System.out.println("???");
		}

		System.out.println("KONIEC");
	}
}

Przykład zastosowania instrukcji switch


import java.util.Scanner;

public class Oceny {

	public static void main(String[] args) {

		Scanner skaner = new Scanner(System.in);

		System.out.print("Podaj ocenę: ");

		String ocena = skaner.nextLine();
		int ocenaLiczba = Integer.parseInt(ocena);

		switch (ocenaLiczba) {
		case 5 :
			System.out.println("Bardzo dobry");
			break;
		case 4 :
			System.out.println("Dobry");
			break;
		case 3 :
			System.out.println("Dostateczny");
			break;
		case 2 :
			System.out.println("Niedostateczny");
			break;
		default :
			System.out.println("Jakaś dziwna ocena!");
		}
	}
}

Przykład zastosowania instrukcji switch z łańcuchem znaków (konieczna Java 7 lub nowsza)


import java.util.Scanner;

public class SwitchString {

	public static void main(String[] args) {
		Scanner skaner = new Scanner(System.in);
		System.out.print("Podaj kariotyp: ");
		String kariotyp = skaner.nextLine();
		// zmieniamy wszystkie znaki na wielkie
		kariotyp = kariotyp.toUpperCase();
		switch (kariotyp) {
		case "XX":
			System.out.println("Kariotyp "+kariotyp+" nalezy do samicy.");
			break;
		case "XY":
			System.out.println("Kariotyp "+kariotyp+" nalezy do samca.");
			break;
		default:
			System.out.println("???");		
		}
	}
}

Zastosowanie operatora warunkowego (? :) i porównanie z instrukcją if … else


import java.util.Scanner;

public class OperatorWarunkowy {

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

		System.out.print("Podaj liczbę: ");

		String rodzajLiczby;
		String liczba = skaner.nextLine();
		int liczbaInt = Integer.parseInt(liczba);

		// z zastosowaniem instrukcji if ... else
		if (liczbaInt%2 == 0) rodzajLiczby="parzysta";
		else rodzajLiczby="nieparzysta";
		System.out.println("Podana liczba ("+liczbaInt+") jest "+rodzajLiczby);

		// z zastosowaniem operatora warunkowego
		rodzajLiczby = (liczbaInt%2 == 0 ? "parzysta" : "nieparzysta");
		System.out.println("Podana liczba ("+liczbaInt+") jest "+rodzajLiczby);

		// z zastosowaniem operatora warunkowego  - wersja w 1 linijce
		System.out.println("Podana liczba ("+liczbaInt+") jest "+(liczbaInt%2 == 0 ? "parzysta" : "nieparzysta"));
	}
}

2 komentarze Java – instrukcje wyboru (03)

  • adrian.lodz

    Czemu przy programie z kariotypem wyświetla mi błąd: Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted

    • Grzegorz

      Tego typu błąd pojawia się jeśli instrukcję „switch” ze String-iem stosuje się w Javie w wersji 6 lub niższej. „Switch” obsługuje łańcuchy znaków od wersji 7.
      Przypuszczalnie masz zainstalowaną Javę 6.

Leave a Reply