このプログラムは、ユーザー入力から整数を取り出してコレクションに入れます。次に、正の値を最初に出力し、次に負の値を出力し、繰り返し数を出力しません。これは、ユーザーが0に入ると、ここで入力を求めて停止したコードです:このJavaプログラムの適切な印刷方法の開発を手助けする必要があります
public class Intcoll2
{
private int[] c;
private int[] d;
private int howmany = 0;
public Intcoll2()
{
c = new int[500];
}
public Intcoll2(int i)
{
c = new int[i]
}
public void insert(int i)
{
if (i > 0)
{
int j = 0;
while ((j <= howmany) && (c[j] != i)) j++;
if (j == howmany)
{
if (j == c.length - 1)
{
d = new int[2*c.length];
for (int k = 0; k<c.length; i++){
d[k] = c[k];
}
c = d;
}
c[j] = i; c[j + 1] = 0;
}
howmany++;
}
}
public int get_howmany()
{
int j=0, howmany=0;
while (c[j]!=0) {howmany++; j++;}
return howmany;
}
今私の現在の印刷方法は、次のようになります。
public void print()
{
int j = 0;
System.out.println();
while (j <= howmany)
{
System.out.println(c[j]); j++;
}
}
しかし、私は私のクライアントにそれを使用しようとすると、ゼロを出力するだけです。私が間違っていることを助けてくれれば幸いです。
私が見ることができる1つのことは、配列 'c'に' insert'の引数を決して加えないことです。あなたのforループも 'cであれば無限に実行されます。'k 'をインクリメントしないので長さは0です。 –
' c [j] = i'で待ちます。通常は 'i'がインデックスなので混乱します。 'i'の名前を' toInsert'のように変更して読みやすくすることができます。 –
'insert(int i)'メソッドを呼び出すことはありますか? –