我得到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);
}
}
答案 0 :(得分:1)
三个问题:
sum = sum + myArray[u];
而不是sum= sum= sum = myArray[u];
int pro = 1;
在读取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,因为它是乘法sum= sum= sum = myArray[u];
至sum += myArray[u];
现在你很好。