Java Output if and else?

Max :

I want to lexiographically arrange my strings. My code also works. But when I enter the strings Hans, Anna and Max he gives me both the "if" and the "else" println. Where is the error?

import java.util.Scanner;

class ersteAufgabe {

public static void main(String args[]) {

          Scanner scan = new Scanner(System.in);
          String s1 = scan.nextLine();
          String s2 = scan.nextLine();
          String s3 = scan.nextLine();
          if (s1.compareTo(s2) < 0 & s1.compareTo(s3) < 0 & s2.compareTo(s1) > 0 & s2.compareTo(s3) < 0 & s3.compareTo(s1) > 0 & s3.compareTo(s2) > 0) 
          {
            System.out.println("Ordnung:" + s1 +" "+ s2 +" " + s3);  
          }
          if (s1.compareTo(s2) < 0 & s1.compareTo(s3) < 0 & s2.compareTo(s1) > 0 & s2.compareTo(s3) > 0 & s3.compareTo(s1) > 0 & s3.compareTo(s2) < 0) 
          {
            System.out.println("Ordnung:" + s1 +" "+ s3 +" " + s2);  
          }
          if (s1.compareTo(s2) > 0 & s1.compareTo(s3) < 0 & s2.compareTo(s3) < 0 & s2.compareTo(s1) < 0 & s3.compareTo(s1) > 0 & s3.compareTo(s2) > 0) 
          {
            System.out.println("Ordnung:" + s2 +" "+ s1 +" " + s3);  
          }
          if (s1.compareTo(s2) > 0 & s1.compareTo(s3) > 0 & s2.compareTo(s1) < 0 & s2.compareTo(s3) < 0 & s3.compareTo(s1) < 0 & s3.compareTo(s2) > 0) 
          {
            System.out.println("Ordnung:" + s2 +" "+ s3 +" " + s1);  
          }
          if (s1.compareTo(s2) < 0 & s1.compareTo(s3) > 0 & s2.compareTo(s3) > 0 & s2.compareTo(s1) > 0 & s3.compareTo(s1) < 0 & s3.compareTo(s2) < 0)
          {
            System.out.println("Ordnung:" + s3 +" "+ s1 +" " + s2);  
          }
          if (s1.compareTo(s2) > 0 & s1.compareTo(s3) > 0 & s2.compareTo(s1) < 0 & s2.compareTo(s3) > 0 & s3.compareTo(s2) < 0 & s3.compareTo(s1) < 0)
          {
            System.out.println("Ordnung:" + s3 +" "+ s2 +" " + s1);  
          } else{
              System.out.println("Ungueltige Eingabe");
          }

    }
 }
MWB :

The else in your code is only connected to the last if. That means that if one of the other ifs is true (and the last if is false), the else is executed as well. So try this:

public static void main(String args[]) {

          Scanner scan = new Scanner(System.in);
          String s1 = scan.nextLine();
          String s2 = scan.nextLine();
          String s3 = scan.nextLine();
          if (s1.compareTo(s2) < 0 & s1.compareTo(s3) < 0 & s2.compareTo(s1) > 0 & s2.compareTo(s3) < 0 & s3.compareTo(s1) > 0 & s3.compareTo(s2) > 0) 
          {
            System.out.println("Ordnung:" + s1 +" "+ s2 +" " + s3);  
          }
          else if (s1.compareTo(s2) < 0 & s1.compareTo(s3) < 0 & s2.compareTo(s1) > 0 & s2.compareTo(s3) > 0 & s3.compareTo(s1) > 0 & s3.compareTo(s2) < 0) 
          {
            System.out.println("Ordnung:" + s1 +" "+ s3 +" " + s2);  
          }
          else if (s1.compareTo(s2) > 0 & s1.compareTo(s3) < 0 & s2.compareTo(s3) < 0 & s2.compareTo(s1) < 0 & s3.compareTo(s1) > 0 & s3.compareTo(s2) > 0) 
          {
            System.out.println("Ordnung:" + s2 +" "+ s1 +" " + s3);  
          }
          else if (s1.compareTo(s2) > 0 & s1.compareTo(s3) > 0 & s2.compareTo(s1) < 0 & s2.compareTo(s3) < 0 & s3.compareTo(s1) < 0 & s3.compareTo(s2) > 0) 
          {
            System.out.println("Ordnung:" + s2 +" "+ s3 +" " + s1);  
          }
          else if (s1.compareTo(s2) < 0 & s1.compareTo(s3) > 0 & s2.compareTo(s3) > 0 & s2.compareTo(s1) > 0 & s3.compareTo(s1) < 0 & s3.compareTo(s2) < 0)
          {
            System.out.println("Ordnung:" + s3 +" "+ s1 +" " + s2);  
          }
          else if (s1.compareTo(s2) > 0 & s1.compareTo(s3) > 0 & s2.compareTo(s1) < 0 & s2.compareTo(s3) > 0 & s3.compareTo(s2) < 0 & s3.compareTo(s1) < 0)
          {
            System.out.println("Ordnung:" + s3 +" "+ s2 +" " + s1);  
          } else{
              System.out.println("Ungueltige Eingabe");
          }
    }
 }

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=128773&siteId=1