2017-07-16 9 views
0

私は数のリストを生成し、合計を合計して3つの異なるリストに分けるプログラムを持っています。 1つはすべての数字であり、他の2つは偶数と奇数であり、次に偶数と奇数の配列リストを出力します。乱数を生成する - リストに入れる - リストを印刷する

または何らかの理由で2つのリストを印刷しようとすると、ArrayListの最初の2つの数字だけが表示され、エラーメッセージは表示されません。

マイコード:それはそう固めているため

import java.util.Random; 
import java.util.ArrayList; 

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

Random Generate = new Random(); 
ArrayList<Double> List = new ArrayList<>(); 
ArrayList<Double> Even = new ArrayList<>(); 
ArrayList<Double> Odd = new ArrayList<>(); 


double number; 
double total = 0; 
double totalEven = 0; 
double totalOdd = 0; 
double averageWhole; 
double averageEven; 
double averageOdd; 

System.out.println("Generating Numbers:");  
for (int Repeater = 0; Repeater < 10; Repeater++) { 
    number = Generate.nextInt(100); 
    List.add(number); 
} 
System.out.println("Loaded... " + "Putting Numbers Into List"); 
System.out.println(); 

for(int Insert = 0; Insert < 3; Insert++) { 
    System.out.println("Adding To List..."); 
} 
System.out.println("List Completed!"); 
System.out.println(); 
System.out.println(); 
for (int x = 0; x < List.size(); x++) { 
    total += List.get(x); 
    //Complicated Code --- really big for loop try to simplify later. 
    if (List.get(x) % 2 == 0) { 
     Even.add(List.get(x)); 
    } 
    else { 
     Odd.add(List.get(x)); 
    } 
} 
System.out.println("Your Total Is: " + total); 
System.out.println(); 
System.out.println(); 
System.out.println("Even Numbers:" + "\t" + "Odd Numbers"); 

for (int Output = 0; Output < Even.size() && Output < Odd.size(); Output++)   
{ 
    System.out.println(Even.get(Output) + "\t" + "\t" + Odd.get(Output)); 
} 
averageWhole = total/List.size(); 
System.out.println("Average of All Numbers:  " + "Average of All Even Numbers:  "+ "Average of all Odd Numbers:  " ); 
for (int averageE = 0; averageE < Even.size(); averageE++) { 
    totalEven = totalEven + Even.get(averageE); 
} 
averageEven = totalEven/Even.size(); 

for (int averageO = 0; averageO < Odd.size(); averageO++) { 
    totalOdd = totalOdd + Odd.get(averageO); 
} 
averageOdd = totalOdd/Odd.size(); 

System.out.print(averageWhole + "\t" + "\t" + "\t" + " " + averageEven + "\t" + "\t" + "\t" + "\t" + "  " + averageOdd); 
System.out.println(); 
System.out.println(); 
System.out.println("Command Complete..."); 

申し訳ありません - Javaの学習 - 2/3週間に - ありがとう!

+2

を読みやすくするために、正しくコードをインデントしてください。 – CodingNinja

答えて

0

奇数と偶数を印刷する場合、短いリストが完了するとループの条件が満たされ、すべての数値を印刷する前に印刷が停止します。印刷を2つの別々のループに分けます。

for (int i = 0; i < Even.size(); i++) { 
    System.out.println(Even.get(i)); 
} 

for (int i = 0; i < Odd.size(); i++) { 
    System.out.println(Odd.get(i)); 
} 

Javaの変数は小文字で始まる必要があります。 Even,Odd,Outputなどがeven,odd,outputである必要があります。

0

同じ形式続けるガイのコードに別の方法:

for (int Output = 0; Output < Even.size() || Output < Odd.size(); Output++) { 
String even = "-"; 
if(Output < Even.size()){ 
    even = Even.get(Output).toString(); 
}//end of if 
String odd = "-"; 
if(Output < Odd.size()){ 
    odd = Odd.get(Output).toString(); 
} 
System.out.println(even + "\t" + "\t" + odd); 
} 
関連する問題