如何从if循环中只获得一个答案

时间:2016-12-03 04:42:18

标签: java

我想通过比较他们的生日来弄清楚两个人中哪一个更老或更年轻。如果他们的生日不同,它给出了1个正确的答案,但是当他们的生日相同时,它给了我3个答案(如下所示),这不是我的意图。

Person A is younger 
Person A is younger
Person A is younger

如何只获得一个答案They are same

import java.util.Scanner;

public class hghfg {

    public static void main(String[] args) {
        Scanner A= new Scanner (System.in);
        System.out.println("Person A Enter Year");
        int B= A.nextInt();
        System.out.println("Enter Month");
        int C= A.nextInt();
        System.out.println("Enter Day");
        int Z= A.nextInt();


        System.out.println("Person B Enter Year");
        int D= A.nextInt();
        System.out.println("Enter Month");
        int E= A.nextInt();
        System.out.println("Enter Day");
        int F= A.nextInt();


        if( B> D){
            System.out.println("Person A is older");
        }
        else {
            System.out.println("Person A is younger");
        }

        if(B==D){
            if (C>E){
            System.out.println("Person A is older");}   
            else {
                System.out.println("Person A is younger");
                    }   
            }
        if (B==D || C==E){
            if (Z>F){
                System.out.println("Person A is older");}   
            else {
                System.out.println("Person A is younger");
            }
            if (B==D || C==E || Z==F){
                System.out.println("They are same");
            }
        }
    }
}

3 个答案:

答案 0 :(得分:1)

从未听说过if循环,我看不到循环。如果B < D或B == D,你的第一个else子句总是打印出“人A更年轻”,这是错误的,这可能是你得到多个输出的原因。

尝试此操作

if( B> D) {
    System.out.println("Person A is older");
} else if(B < D) {
    System.out.println("Person B is older");
} else {
    /* same year; do same pattern for month etc. */    
}

答案 1 :(得分:0)

好的,所以java中有一个名为if else的语句。我将演示。

public class IfelseExample{
    int B, D;
    if(B==D)
        System.out.println("A sentence");
    else if(B>D)
        System.out.println("A different sentence");
    else
        System.out.println("Another different sentence");
}

这段代码的作用是,如果B等于D,它输出&#34;一个句子&#34;,如果B大于D,它输出&#34;一个不同的句子&#34;,如果两者都不是真的它输出&#34;另一个不同的句子&#34;我希望这有帮助!

答案 2 :(得分:0)

Scanner A = new Scanner(System.in);
        System.out.println("Person A Enter Year");
        int B = A.nextInt();
        System.out.println("Enter Month");
        int C = A.nextInt();
        System.out.println("Enter Day");
        int Z = A.nextInt();

        System.out.println("Person B Enter Year");
        int D = A.nextInt();
        System.out.println("Enter Month");
        int E = A.nextInt();
        System.out.println("Enter Day");
        int F = A.nextInt();

        if (B < D) {
            System.out.println("Person A is older");
        } else if (B == D) {
            if (C < E) {
                System.out.println("Person A is older");
            } else if (B == D && C == E) {
                if (Z < F) {
                    System.out.println("Person A is older");
                } else if(B == D && C == E && Z == F) {
                    System.out.println("They are same");
                } else {
                    System.out.println("Person A is younger");
                }
            } else {
                System.out.println("Person A is younger");
            }
        } else {
            System.out.println("Person A is younger");
        }

试试这个。它会工作,你应该构建一个适当的嵌套 - 如果在这种情况下。我将||条件替换为&&条件。