私のプログラムを実行した後、私の配列のすべての値が1に等しいことに気づき、デバッガを実行した後、私のforループが配列に移入されているはずですが、理由は分かりません。誰かが私が間違ったことを教えてもらえますか?メソッドforループを完全に無視する:
プログラムは、この行に到達した:そして
for (a = a; a >= 1000; a++) // Adds all prime numbers 1 through 1000 to primeA[];
とにジャンプ:
for (int k = 0; k < primeA.Length; k++)
完全なコード:
class calcPrime
{
/* @Method: isPrimeSET
* @param: int a, int b
* @return: true/false
* @ Builds a list of primes and sorts them into a multi dimensional array.
*/
public int[,] isPrimeSet(int a, int b)
{
int[,] primeNumArray = new int[999, 999]; // Prime Multi Array 1000 slots in each array
int[] primeA = new int[999]; // All prime numbers a 1 to 1000
int[] primeB = new int[999]; // All prime numbers b 1 to 1000
ArrayList dumpArrayA = new ArrayList(); // None prime numbers
ArrayList dumpArrayB = new ArrayList(); // None prime numbers
for (a = a; a >= 1000; a++) // Adds all prime numbers 1 through 1000 to primA[];
{
if (isPrime(a) == true)
{
int i = 0; // Index of primeA
primeA[i] = a; // Add primes to a
i++;
}
else // Stores none prime numbers
{
int m = 0;
dumpArrayA.Add(m);
m++;
}
for (b = b; b >= 1000; b++) // Adds all prime number 1 through 1000 to primeB[];
{
if (isPrime(b) == true)
{
int j = 0; // Index of primeB
primeB[j] = b; // Add primes to b
j++;
}
else
{
int n = 0;
dumpArrayB.Add(n);
n++;
}
}
}
// Merge primesA[] and primesB[];
for (int k = 0; k < primeA.Length; k++)
{
primeNumArray[k, 0] = primeA[k];
primeNumArray[k, 1] = primeB[k];
}
// Print Contents of PrimeNumArray
for (int l = 0; l >= primeNumArray.Length; l++) {
Console.WriteLine(primeNumArray[l, l]);
}
return primeNumArray;
}
作るのが無駄な試みで追加else文とダンプアレイプログラムの仕事。また、私はforループ内の同じ変数に変数を代入したことを知っています。メソッドが呼び出されたときにユーザーが選択した場所に値を設定したかったのです。
'for(a = a; = 1000; a ++)は' for(a = 1; a> = 1000; a ++) 'であることを意味していますか? –
a> = 1000または<= 1000 –
aは、メソッドがメインで呼び出されたときにメソッドに渡される値であることを意図しています。 – shockemc