无法正确解决任务

时间:2011-10-19 13:25:03

标签: java

我使用eclipse作为Ide。我尝试为以下任务执行源代码:

  

“编写一个算法来提示用户输入一系列整数(每个都在一个单独的行上)。输入将以零值终止。一旦用户输入零,显示数字(计数)消极和积极的价值观。“:

这是我的源代码,如果有人有任何想法或建议,我将不胜感激听到他们。谢谢。

import java.util.Scanner; 

public class CountNums {    

    public static void main(String[] args) {
        Scanner input = new Scanner (System.in);        
        System.out.println("Enter a series of integers and 0 for exit of the loop:");       
        int i = input.nextInt();        
        int negative = 0;       
        int positive = 0 ;          
        while (i != 0 ) {
            System.out.println("Enter next integer: ");
            i = input.nextInt();        
            if (i < 0) {
                System.out.println( negative += 1 );
            }else if (i > 0)  {
                System.out.println(positive += 1);          
            }
        }   
    } 

}

4 个答案:

答案 0 :(得分:2)

你有两个问题:

  1. 计数中忽略用户输入的第一个数字。为什么?
  2. 当程序结束时,变量positivenegative不会按照规范中的要求显示。相反,它们会在用户输入数字时显示,但第一次除外。

答案 1 :(得分:2)

我不会为您提供书面代码,但我会提供一些有助于您思考的内容。

你要求的问题并不太难,所以你应该能够更多地考虑它。

你似乎走在了正确的轨道上。描述说您想要打印出在用户输入0之后输入的正数和负数的数量。此时您在每次用户输入后输出它。 &lt; - 想想这一点,以及你应该把输出放在哪里。

你也在while循环之外要求nextInt()。在输入数字时尝试跟踪程序,看看会发生什么。你应该在调用下面的if语句之前实际输入2个整数。

P.S。您可能希望确保将来代码的格式正常......

编辑:多一点帮助:

System.out.println( negative += 1 );

目前做了两件事,它增加了目前为止负整数数量的计数器,并打印出该值。

你是正确的,你想在每次运行while循环时保持递增该值(并且用户输入一个数字<0),但你不想做的是在那个阶段打印它该计划也是如此。考虑将这些代码分成两部分,并将适当的部分放在适当的位置:)

所以,想一想:

如何自行增加变量,以及如何自己打印变量。当然,也可以将其改为正线。

答案 2 :(得分:0)

每次读入数字时都不需要执行System.out.println()....只需递增计数(正++)并执行System.out.println(“正数计数为”+正数);在while循环之后。

答案 3 :(得分:0)

每次迭代中打印负值或正值的数量。您希望在while循环之后打印