Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Variablen und Zuweisungen

Hinweis: Alle in diese Übung verwendeten Klassen findest du auch als Vorgabedateien unter http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/VariablenUndZuweisungen.tar

(Die Datei wird mit dem Kommando tar -xf entpackt bzw. mit 7-Zip Portable unter Windows)


Deklaration und Initialisierung

  • An welcher Stelle im folgenden Programm wird die Variable aWholeNumber deklariert?
  • An welcher Stelle im folgenden Programm wird die Variable aWholeNumber initialisiert?
  • Beantworte diese Fragen auch für die Variablen: notAWholeNumber, aString, anotherWholeNumber, anotherNotSoWholeNumber, anotherString
  • Erkläre deine Meinung einem Tutor oder diskutiere sie mit der Person am Rechner nebenan.

Lösung:

class DeklarationUndInitialisierung {
	public static void main(String[] args) {
		int aWholeNumber; //Deklaration
		double notAWholeNumber; //Deklaration
		String aString;//Deklaration

		aWholeNumber = 0; //Initialisierung
		notAWholeNumber = 0.0; //Initialisierung
		aString = ""; //Initialisierung
		System.out.println(aWholeNumber);
		System.out.println(notAWholeNumber);
		System.out.println(aString);

		int anotherWholeNumber = 0; //Deklaration und Initialisierung
		double anotherNotSoWholeNumber = 0; //Deklaration und Initialisierung
		String anotherString = ""; //Deklaration und Initialisierrung
		System.out.println(anotherWholeNumber);
		System.out.println(anotherNotSoWholeNumber);
		System.out.println(anotherString);
	}
}

Selber Deklarationen und Definitionen durchführen

  • Realisiere die Kommentare im folgenden Codestück.
  • Teste deinen Code.
class SelbstDeklarierenUndDefinieren {
	public static void main(String[] args) {
		// deklariere eine Variable "birnen"  vom Typ int
		
		// weise ihr den Wert drei zu

		System.out.println("3 erwartet: " + birnen);
		// addiere fuenf zu dem Wert

		System.out.println("8 erwartet: " + birnen);
		// deklariere eine Variable "aepfel" und weise ihr den Wert fuenf zu

		System.out.println("5 erwartet: " + aepfel);
		// subtrahiere zwei von dem Wert

		System.out.println("3 erwartet: " + aepfel);

		
	}
}

Zuweisung an Variablen

  • Überlege dir, was für eine Ausgabe der folgende Code erzeugen würde.
  • Compiliere den Code, führe ihn aus und vergleiche das Resultat mit deinen Erwartungen.
  • Was sind die Unterschiede?
  • Diskutiere die Unterschiede mit der Person am Rechner nebenan, oder einem Tutor.


class ZuweisungenAnVariablen {
	public static void main(String [] ignored) {
		System.out.println(0);
		int zero = 0;
		System.out.println(zero);
		int one = 1;
		int whatsThis = zero;
		System.out.println(whatsThis);
		whatsThis = one;
		System.out.println(whatsThis);
	}
}


Variablen ändern ihre Werte

  • Überlege dir, was für eine Ausgabe der folgende Code erzeugen würde.
  • Compiliere den Code, führe ihn aus und vergleiche das Resultat mit deinen Erwartungen.
  • Was sind die Unterschiede?
  • Diskutiere die Unterschiede mit der Person am Rechner nebenan, oder einem Tutor.


class VariablenAendernIhreWerte {
	public static void main(String [] ignored) {
		int number = 1;
		System.out.println(number);
		number = 1;
		System.out.println(number);
		number = 2;
		System.out.println(number);
		number = 3;
		System.out.println(number);
		number = 1;
		System.out.println(number);
		number = 17;
		System.out.println(number);
	}
}


Formatierung und Namen

  • Wieso haben wir die Code-Beispiele nach den geschweiften Klammern eingerückt und die Variablen so benannt, wie wir es taten und nicht so:
class _{static long _
(long __,long  ___) {
return __==0 ?___+ 1:
___==0?_(__-1,1):_(__
-1,_(__, ___-1)) ;  }
static  {int _=2 ,___
= 2;System.out.print(
"a("+_+’,’+___+ ")="+
_ (_,  ___) ) ;System
.exit(1);}}//(C) Ulli
//nicht lesbar


  • Etwas weniger Extrem: Was ist im folgenden Beispiel bei der Formatierung schief gelaufen?
class Formatierung1 {public static void main
	(String [] ignored) {
	System.out.println(0); int zero = 0;
			System.out.println(zero);
		int one = 1;
		int whatsThis = zero;
			System.out.
		println(whatsThis);
	whatsThis = one;		System.out.println(whatsThis)
;}}
//Die Einrückung hat sich verschoben


  • Warum ist der folgende Code so schlecht lesbar?
  • Woran erinnert er dich?
class b {
	public static void main(String [] i) {
		System.out.println(0);
		int a = 0;
		System.out.println(a);
		int b = 1;
		int c = a;
		System.out.println(c);
		c = b;
		System.out.println(c);
	}
}// Keine Namen nur Buchstaben!

Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)



Ich finde die Aufgabe "Selber Deklarationen und Definitionen durchführen" echt cool zum lernen also das Pogram nur mit Hilfe von Komentaren zu schreiben. Ist ne coole Übung.


+1