ホームページ >バックエンド開発 >C#.Net チュートリアル >C#のforループの解析例
この記事では、非常に参考値の高いforloopに関する古典的な事例を中心に紹介しています。以下のエディタで見てみましょう
forループはループ変数の初期値やループ終了条件を制御することで走査間隔を変更できるので、ソートや走査をする際にforを使うと比較的簡単です。以下のようにループします。 これらは、私が勉強した結果得られたいくつかの要約ケースです。
1.ソートの応用
1) 交換ソート: 取り出した数字とその数字の後ろにある残りの数字を1つずつ比較し、最大または最小の数字をグループの先頭に置きます。次に、2 番目に大きい数字を 2 番目の位置に置き、すべての数字を順番に並べます。
for(int i = 0; i < (num.length - 1); i ++) { for(int j = i + 1; j < num.length; j ++) { if(num[i] > num[j]) { int temp = num[j]; num[i] = num[j]; num[j] = temp; } } }
上記のコードは、arraynumのi - num.lengthから最小値を見つけて最初の位置に格納します。ここで、numは大量のデータを格納する配列です。
2) バブルソート: 2 つの隣接する数値のサイズを継続的に比較することにより、大きい数値が常に後ろの位置に交換され、小さい数値が配列の先頭に向かって 浮かび上がります。
for (int i = nums.Length - 1; i > 0; i--) { //在 0-i 范围内,将该范围内最大的数字沉到i for (int j = 0; j < i; j++) { if (nums[j] > nums[j+1]) { //交换 int temp = nums[j]; nums[j] = nums[j+1]; nums[j+1] = temp; } } }
3) 選択ソート: ソートを交換することにより、範囲内の最小の数値が範囲内の最初の位置に繰り上げられます。
for (int i = 0; i < nums.Length - 1; i++) { int index = i; //先假设最小数的下标是i for (int j = i + 1; j < nums.Length; j++) { if (nums[j] < nums[index]) { index = j; } } int temp = nums[i]; nums[i] = nums[index]; nums[index] = temp; }
2. 素数の決定
bool isFinnd = false; for (int i = 2; i < num; i++) { if (num % i == 0) { isFinnd = true; break;//当找到一个数 i 能够整除 num 时,说明当前的 num 是一个合数,结束当前的for循环 } } if (!isFinnd)//如果 num 是一个质数,则报错提示 { //判断出当前的num是质数 }現在のコードの num は特定の整数変数です。 上記のケースに加えて、もちろん多くのアプリケーションシナリオがあり、それらを使用する際には全員で要約する必要があります。
以上がC#のforループの解析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。