使用数组和 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] 和 increment counter
while(counter < wholeNumber.length) {
if(wholeNumber[counter] < 0)
{
sum += wholeNumber[counter];
negativeCounter++;
}
counter++
}
一些提示:
public class NegativeNumber {
你的 class 必须是 public 当你想稍后 运行 它的 main方法!
你的循环可以被简化,使用 for 循环的 for each 风格:
for (int number : wholeNumber } {
sum = sum + number;
if(number < 0) {
negativeCounter++;
}
}
并且提示:wholeNumber 是一个误导性的数组名称。为什么不叫它 wholeNumbers 呢?!表达这个变量是关于数字复数的事实!
- Sum 是一个 int 值;
- WholeNumber 是一个数组;
- "+"运算符不支持int和array的相加。您需要使用数组的索引来获取 int 值。
您可以使用 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);
}
}
有一项任务,并且是新手。作业是计算给定数组中的负数,并打印出它们的数量。而且我必须使用一个 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] 和 increment counter
while(counter < wholeNumber.length) {
if(wholeNumber[counter] < 0)
{
sum += wholeNumber[counter];
negativeCounter++;
}
counter++
}
一些提示:
public class NegativeNumber {
你的 class 必须是 public 当你想稍后 运行 它的 main方法!
你的循环可以被简化,使用 for 循环的 for each 风格:
for (int number : wholeNumber } {
sum = sum + number;
if(number < 0) {
negativeCounter++;
}
}
并且提示:wholeNumber 是一个误导性的数组名称。为什么不叫它 wholeNumbers 呢?!表达这个变量是关于数字复数的事实!
- Sum 是一个 int 值;
- WholeNumber 是一个数组;
- "+"运算符不支持int和array的相加。您需要使用数组的索引来获取 int 值。
您可以使用 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);
}
}