關於for循環的幾種經典案例


由於for循環可以通過控制循環變量的初始值和循環結束條件來改變遍歷的區間,所以在排序或者遍歷的時候,利用for循環就比較簡單,以下是本人學習后得到的一些總結案例。

1.排序的應用

1)交換排序:通過取出的數和該數位置后面剩余的其他數逐一進行比較,將最大的或者最小的一個數放在一組數的首位,然后再將第二大的數放在第二位,依次排完所有的數。

 1 for(int i = 0; i < (num.length - 1); i ++)
 2 {
 3     for(int j = i + 1; j < num.length; j ++)
 4     {
 5           if(num[i] > num[j])
 6            {
 7                int temp = num[j];
 8                num[i] = num[j];
 9                num[j] = temp;
10            }
11     }
12 }            

以上代碼就是實現將數組num中的最小值從i - num.length中找出來,並存在第一個位置,其中 num 是一個存放了大量數據的數組。

2)冒泡排序:通過不斷的將相鄰的兩個數進行大小比較,大的數不斷的往后面的位置交換,小的數向數組的頂部位置浮動。

 1 for (int i = nums.Length - 1; i > 0; i--)
 2 {
 3     //在 0-i 范圍內,將該范圍內最大的數字沉到i
 4     for (int j = 0; j < i; j++)
 5     {
 6         if (nums[j] > nums[j+1])
 7         {
 8             //交換
 9             int temp = nums[j];
10             nums[j] = nums[j+1];
11             nums[j+1] = temp;
12         }
13     }
14 }

3)選擇排序:通過交換排序的方式,將某個范圍內的最小數提到該范圍內的第一位。

 1 for (int i = 0; i < nums.Length - 1; i++)
 2 {
 3     int index = i; //先假設最小數的下標是i
 4     for (int j = i + 1; j < nums.Length; j++)
 5     {
 6         if (nums[j] < nums[index])
 7         {
 8             index = j;
 9         }
10     }
11     int temp = nums[i];
12     nums[i] = nums[index];
13     nums[index] = temp;
14 }

2.質數的判斷

 1 bool isFinnd = false;
 2 for (int i = 2; i < num; i++)
 3 {
 4     if (num % i == 0)
 5     {
 6         isFinnd = true;
 7         break;//當找到一個數 i 能夠整除 num 時,說明當前的 num 是一個合數,結束當前的for循環
 8     }
 9 }
10 if (!isFinnd)//如果 num 是一個質數,則報錯提示
11 {
12     //判斷出當前的num是質數
13 }    

當前代碼的 num  是一個具體的整型變量。

 

除了以上的案例,當然還有很多的應用場景,需要大家在運用的時候不斷自己總結。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM