簡體   English   中英

使用數組和while循環計算負數

[英]Count negative numbers using array and while loop

有一個任務,我是新手。 任務是計算給定數組中的負數,並打印出它們計算的數量。 我必須使用一個while循環。 我收到很多錯誤。

class NegativeNumber {
    public static void main(String[] args) {

        int[] wholeNumber = {1, 4, 5, -2, -4, 6, 10, 3, -2};
        int counter = 0;
        int negativeCounter = 0;
        int sum;

        while(counter < wholeNumber.length) {
           sum = sum + wholeNumber;
           if(wholeNumber < 0)
           {
             negativeCounter++;
           }
          }
          System.out.println("The amount of negative numbers are "+negativeCounter);
   }
}

改變

if(wholeNumber < 0)

if(wholeNumber[counter] < 0)

sum = sum + wholeNumber;

sum = sum + wholeNumber[counter];

或者更短的

sum += wholeNumber[counter];

並且不要忘記在循環體的末尾增加counter

counter++;

或者,在 Java 8+ 中

你可以使用IntStream

int[] wholeNumber = { 1, 4, 5, -2, -4, 6, 10, 3, -2 };
int sum = IntStream.of(wholeNumber).sum();
long negativeCount = IntStream.of(wholeNumber).filter(x -> x < 0).count();
System.out.printf("%s Sum=%d, Count=%d%n", 
        Arrays.toString(wholeNumber), sum, negativeCount);

您必須使用 WholeCounter[counter] 並在最后增加 counter

  1. Sum 是一個 int 值;
  2. WholeNumber 是一個數組;
  3. “+”運算符不支持 int 和 array 之間的相加。 您需要使用數組的索引來獲取 int 值。
 while(counter < wholeNumber.length) {
       if(wholeNumber[counter] < 0)
       {
         sum += wholeNumber[counter];
         negativeCounter++;
       }
      counter++
      }

一些提示:

public class NegativeNumber {

當您想稍后運行其main方法時,您的類必須是公共的

您可以使用for 每種風格的 for 循環來簡化您的循環:

    for (int number : wholeNumber } {
       sum = sum + number;
       if(number < 0)  {
         negativeCounter++;
       }
    }

並提示:wholeNumber 是一個誤導性的數組名稱。 為什么不把它wholeNumber!而非? 為了表達這個變量是關於復數數字的事實!

您可以使用 for 循環輕松完成

public class NegativeNum {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] wholeNumber = {1, 4, 5, -2, -4, 6, 10, 3, -2};

        int negativeCounter = 0;
        int sum=0;

        for(int i =0; i<wholeNumber.length; i++)
        {
            if(wholeNumber[i]< 0)
            {
                sum =sum+ wholeNumber[i];
                negativeCounter++;
            }

        }
        System.out.println(sum + " " + negativeCounter);
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM