Java 输出 if 和 else?

标签 java if-statement

我想按字典顺序排列我的字符串。我的代码也有效。但是当我输入字符串 Hans、Anna 和 Max 时,他给了我“if”和“else”println。错误在哪里?

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");
          }

    }
 }

最佳答案

代码中的else仅连接到最后一个if。这意味着如果其他 if 之一为 true(且最后一个 if 为 false),则 else 也会执行。所以试试这个:

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");
          }
    }
 }

关于Java 输出 if 和 else?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53365306/

相关文章:

javascript - 如果指定的域不等于,则当前 URL 应用此 jQuery 以及具有相同域的页面

Java Servlet 大量请求和线程

java - 为什么方法调用 return null for method put from proxied Map

Java netbeans 表单 - 从组合框中获取值

r - 如何在 r 中的 if else 流控制中测试多个条件

php - T_BOOLEAN_AND 错误?

java - 继承的方法不起作用

java - 如何使用parseInt将字符串转换为整数?

python - 将 XML 转换为 Python 对象 - 多个 IF 语句

java - If 语句总是给出相同的答案