Operatoren Bad operand types for binary operator

Raparadasu

Mitglied
Liebes Forum,
ich habe die letzten Tage angefangen mich langsam an Java heranzutasten und versuche nun Pseudocode aus einem Lehrbuch am Rechner zum Laufen zu bekommen.

Ich habe schon ein wenig nach Lösungen gesucht, aber bin bisher nicht wirklich fündig geworden...
Es geht um folgenden Code, bzw. genauer um f und g:

Java:
public class Wahrheitswerte{
    public static void main(String[] args){
        boolean d, e, f, g;
        char a, b, c;
        a = '1';
        b = '1';
        c = '5';
       
        d = a == b;
            System.out.println("d: >"+a==b+"<");
        e = a != b;
            System.out.println("e: >"+a!=b+"<");             
        f = a < c;
            System.out.println("f: >"+a<c+"<");
        g = c >= b;
            System.out.println("g: >"+c>=b+"<");
    }
}



Für d und e gibt mir Java schon die gewünschten Ergebnisse aus. Nur für < und >= bekomme ich Fehler, darum bin ich gerade etwas irritiert. Muss ich das anders schreiben?

Code:
Wahrheitswerte.java:14: error: bad operand types for binary operator '<'
            System.out.println("f: >"+a<c+"<");
                                       ^
  first type:  String
  second type: String
Wahrheitswerte.java:16: error: bad operand types for binary operator '>='
            System.out.println("g: >"+c>=b+"<");
                                       ^
  first type:  String
  second type: String
2 errors


Es wäre lieb, wenn jemand helfen könnte. 😳

Gruß
- Raparadasu
 
Java:
public class Wahrheitswerte{
    public static void main(String[] args){
        boolean d, e, f, g;
        char a, b, c;
        a = '1';
        b = '1';
        c = '5';
       
        d = a == b;
            System.out.println("d: >"+(a==b)+"<");
        e = a != b;
            System.out.println("e: >"+(a!=b)+"<");             
        f = a < c;
            System.out.println("f: >"+(a<c)+"<");
        g = c >= b;
            System.out.println("g: >"+(c>=b)+"<");
    }
}
 
Für d und e gibt mir Java schon die gewünschten Ergebnisse aus.
Nein, auch für d und e sind das nicht die gewünschten Ergebnisse gewesen. Hier sind die Ausgaben nach deiner Logik und der von @httpdigest:
Java:
public class Wahrheitswerte {
    public static void main(String[] args) {
        char a, b;
        a = '1';
        b = '1';

        System.out.println("d: >" + a == b + "<");
        System.out.println("d: >" + (a == b) + "<");

        System.out.println("e: >" + a != b + "<");
        System.out.println("e: >" + (a != b) + "<");
    }
}
Ausgabe:
Code:
false
d: >true<
true
e: >false<
 

Zurück
Oben