输入5个数字,然后显示您输入的所有正数和负数

时间:2014-01-22 09:33:32

标签: java arrays bufferedreader subtraction

我得到0而不是1 1 1 1 1.

课堂学习

package learn2;
import java.io.*;

public class learn {

    public static void main(String[] args) throws IOException{

            InputStreamReader ISR=new InputStreamReader(System.in);
            BufferedReader br=new BufferedReader(ISR);

             int myArray[]=new int[5];
                 int sum= 0;
             int pro = 0;

             for(int u=0;u<5;u++)
             {
                 if (myArray[u]>0)

                 {

             sum= sum= sum = myArray[u];
            pro = pro* myArray[u];

                     }

            System.out.println("enter a number");
            String x=br.readLine();
              int x1=Integer.parseInt(x);

             myArray[u]=x1;

             }
                 for (int u1=0;u1<5;u1++)
             {      
                 System.out.println("You Enter" + myArray[u1] );
                 }


               System.out.print("the sum of all positive numbers is:  " + sum );
              System.out.println("the product of all positive numbers is: " + pro);
    }

}

2 个答案:

答案 0 :(得分:1)

三个问题:

  1. 执行sum = sum + myArray[u];而不是sum= sum= sum = myArray[u];
  2. 将0乘以0的值始终为0,因此使用1:int pro = 1;
  3. 初始化pro
  4. 在读取for循环中的第一个值后进行计算,因为您正在测试myArray[u]>0,如果在阅读前测试myArray[u],则 for(int u=0;u<5;u++) { System.out.println("enter a number"); String x=br.readLine(); int x1=Integer.parseInt(x); myArray[u]=x1; if (myArray[u]>0) { sum= sum + myArray[u]; pro = pro* myArray[u]; } } 始终为0.

    {{1}}

答案 1 :(得分:0)

你得到0因为在Java中所有元素的int数组的默认值都是0。既然你在> 之前对元素进行求和和乘法,那么你就会得到0。

你应该这样做:

for(int u=0;u<5;u++) {
    System.out.println("enter a number");
    String x=br.readLine();
    int x1=Integer.parseInt(x);

    myArray[u]=x1;
    if (myArray[u]>0) {
        sum+= myArray[u];
        pro = pro* myArray[u];
    }
}

更多更改:

  • pro初始化为1,而不是0,因为它是乘法
  • Chagne sum= sum= sum = myArray[u];sum += myArray[u];

现在你很好。