Datentypen und Fehler finden

Java_Azubi

Mitglied
(a) In einem Java-Programm befinden sich die folgenden Zeilen:
Java:
int a = 4;
int b = -1;
int c = 0;
boolean w = true;
Übersetzen Sie die folgenden Bedingungen in Java:
• a und b sind kleiner als 0 und c ist gleich 0.
// (a&b < 0) & c=0;
• a und b haben unterschiedliche Vorzeichen.
// weiß ich leider nicht => benötige einen Tip
• w ist wahr oder b ist ungleich 0.
// w= true I b!=0;
(b) Was ist der Datentyp der folgenden Ausdrücke in Java:
13 / 2 //die Werte sind int und das Ergebnis wäre double
17.0 / 5 //der erste Wert ist double und der zweite int und das Ergebnis wäre double
13 / 2 + 17.5 / 5 //Wert 1 und Wert 2 sind int Wert 3 ist double und Wert 5 ist int das Ergebnis ist double
16 >= 3 || 7 < 12 //boolean

Gegeben ist der folgende Programmtext:
Java:
public class FehlerSuche{
public static void main(){ //public static void main (String[] args) Syntaxfehler
int [] a = { 28, -6, 32.2}; //32 da int Laufzeitfehler
a[3] = 45;
double x = 2;
x = 45.2 * x;
System.out.println( "x " = x ); //+x Laufzeitfehler
}
}

• Welche Fehler finden Sie im obigen Programm? Erläutern Sie die Fehler! Geben Sie auch an, ob es sich um Syntax-Fehler oder Laufzeitfehler handelt.
• Korrigieren Sie die Fehler im Programm sinnvoll, ohne Anweisungen vollständig aus dem Programm zu streichen.
 

Gucky

Top Contributor
a[3] ist nicht vorhanden.
1. a&b<0 ist eine und Verknüpfung der beiden erste Werte und dqnn wird geguckt, ob das Verknüpfte kleiner ist als 0. Also nicht das, was du willst.
2. a>>15 != b>>15
3. = ist eine Zuweisung, der senkrechte Strich ein Bitoperator. Vergleiche sind doppelt. (==)
Der Rest stimmt, soweit ich das erkennen kann.
 

JavaMeister

Gesperrter Benutzer
Leider ist das andere nicht richtig.

Int durch int ist int.

bei der Fehlersuche sind nicht alle Fehler gefunden

Der erste gefundene ist kein Syntax Fehler.

Der letzte gefundene kein Laufzeitfehler.
 
Zuletzt bearbeitet:

Java_Azubi

Mitglied
Java:
    public class FehlerSuche{
    public static void main(){ //public static void main (String[] args) Laufzeitfehler
    int [] a = { 28, -6, 32.2}; //32 da int Laufzeitfehler
    a[3] = 45; //es gibt nur a[0] bis a[2] Laufzeitfehler
    double x = 2;  
    x = 45.2 * x; 
    System.out.println( "x " = x ); //+x Syntaxfehler
    }
    }
So läuft mein Programm, was habe ich übersehen?
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Der zweite gefundene Fehler ist eigentlich keiner. Es werden nur die Nachkommastellen abgeschnitten aber das ist dem Compiler und Java egal. Es gibt weder eine Fehlermeldung, noch eine Warnung oder eine Exception.
 

Gucky

Top Contributor
Wieso? Wenn ich einen double Wert an eine int Variable zuweise, werden die Nachkommastellen abgeschnitten. Oder ist das in der Mengenschreibweise anders, was ich mir nicht vorstellen kann?
 

Gucky

Top Contributor
Er hat nicht gecastet. Das wars. :bloed:
hätte er gecastet, wäre meins richtig aber da er es nicht getan hat...
Mein Fehler :D
 

Neue Themen


Oben