基于条件的java逻辑编程

时间:2017-06-22 12:38:44

标签: java logic

我有一个关于java的基本问题,我想在java中实现。 的 Questio

我有一个整数1到50的数组。 int a [] = {1,2,3,............ 50}

如果a [i]除以2,则会显示“Hello”

如果a [i]除以3,则会显示“World”

如果a [i]除以5和2,那么它将显示“ Hello World ”。

我已经尝试过以下程序,但它显示正确的输出

    package test;

public class Test {

    public static void main(String[] args) {
        int []a = {1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

        for (int i = 0; i < a.length; i++) {
            if(a[i]%2==0) {
                System.out.println("Hello");
            } else if(a[i]%3==0) {
                System.out.println("World");
            } else if(a[i]%2==0 && a[i]%5==0) {
                System.out.println("Hello World");
            }
        }

    }

}

4 个答案:

答案 0 :(得分:2)

您写道“a [i]除以5和2”但您的代码包含“3”:

} else if(a[i]%3==0 && a[i]%5==0) {

需要成为

} else if(a[i]%2==0 && a[i]%5==0) {

但问题是你的if语句是以永远不会达到第3个选项的方式排序的,你需要将“else ifs”更改为“if”(除非你有其他意图,那么你可能需要改为对语句进行重新排序,但是你必须考虑你想用2和3或2,3和5全部整除的数字做什么。

答案 1 :(得分:2)

我没有看到任何可能比下面的代码错误的情况。 IF已得到改善,但您无法远离这一点。

    int[] values = {1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};

    for (int i = 0; i < values.length; i++) {
        int value = values[i];

        if (value % 2 == 0) {
            if (value % 5 == 0) {
                System.out.println("Hello World");
            } else {
                System.out.println("Hello");
            }
        } else if (value % 3 == 0) {
            System.out.println("World");
        }
    }

答案 2 :(得分:0)

我得到了答案。需要将条件放在正确的位置

if(a[i]%2==0 && a[i]%5==0) {
    System.out.println("Hello World");
} else if(a[i]%3==0) {
    System.out.println("World");
} else if(a[i]%2==0) {
    System.out.println("Hello");
}

感谢您的帮助

答案 3 :(得分:0)

另一个例子是使用递归来解决它但你仍然到达IFs

public class Main {

    public static void main(String[] args) {
        int[] values = {1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};

        check(0, values);
    }

    private static void check(int index, int[] values) {
        if (index >= values.length)
            return;

        int value = values[index];

        if (value % 2 == 0) {
            if (value % 5 == 0) {
                System.out.println("Hello World");
            } else {
                System.out.println("Hello");
            }
        } else if (value % 3 == 0) {
            System.out.println("World");
        }

        check(++index, values);
    }
}