用于循环打印意外的次数

时间:2016-04-19 22:22:35

标签: java loops

public static void main (String[] args) {
    Scanner input = new Scanner(System.in);
    int[] array = new int[5];
    System.out.print("Please enter five numbers. \na=");
    array[0] = input.nextInt();
    System.out.print("\nb=");
    array[1] = input.nextInt();
    System.out.print("\nc=");
    array[2] = input.nextInt();
    System.out.print("\nd=");
    array[3] = input.nextInt();
    System.out.print("\ne=");
    array[4] = input.nextInt();
    boolean totalIsZero = false;
    for (int i=0;i<array.length ;i++) {
        for (int j=1;i>j ;j++ ) {       
            if ((array[i] + array[j])==0) {
                System.out.println("The numbers " + array[i] + " and " + array[j] + " have a total sum equal to 0.");
                totalIsZero = true;
            }
        }
    }
    if (!totalIsZero) {
        System.out.print("None of the numbers have a total sum of 0 with each other. ");
    }
}

这是我刚写的一些简单代码。它的任务是检查数组中每两个数字之间的总和(由五个数字组成)是否等于零。

我遇到的问题是,当有两对数字,都等于0时,在程序结束时,只有一对的消息,而不是两者,正如我预期的那样。

如何解决这个问题,以便用户可以读到有两对数字等于0?

1 个答案:

答案 0 :(得分:0)

不确定这是否能完美运行,因为我还没有测试过,而且我有一段时间没有使用过Java,但只是按照你在帖子中的方式创建数组,但是要尝试其余的大部分功能。

// various input calls above^ to create array
int count = 0;
for(int i = 0; i < array.length; i++)
{
    for(int j = i + 1; j < array.length; j++)
    {
        if(array[i] + array[j] == 0)
        {
            System.out.println("The numbers " + array[i] + " and " +
                               array[j] + 
                               " have a sum equal to zero.");
            count++;
        }
     }
}

if(count == 0)
{
    System.out.println("No sum between any numbers is equal to 0");
}