2009-09-30 31 views

Trả lời

41

bạn có thể sử dụng toán tử modulus

for(int i = 0; i < 500; i++) 
{ 
    if(i % 5 == 0) 
    { 
     //do your stuff here 
    } 
} 
+4

Nếu hoàn cảnh cho phép bạn cũng có thể chỉ cần sử dụng 'for ($ i = 0; $ i <500; $ i + = 5) {...} '. – Joey

+2

@Johannes Tôi nghĩ anh ấy muốn xử lý cho mọi số nguyên từ 0 đến n, nhưng kích hoạt một hành động cho mọi phần tử thứ 5. Tôi có thể nhầm lẫn. – patros

+3

Lưu ý rằng '(i% 5 == 0)' sẽ chạy trên các dấu đầu tiên, thứ sáu, thứ mười một,…. Sử dụng '(i% 5 == 4)' để kích hoạt lần thứ năm, thứ mười, mười lăm,… thay vào đó. –

0

Có thể sử dụng một điều kiện với một mô đun, như đã chỉ ra. Bạn cũng có thể làm điều đó với các vòng lặp lồng nhau.

int n = 500; 
int i = 0; 

int limit = n - 5 
(while i < limit) 
{ 
    int innerLimit = i + 5 
    while(i < innerLimit) 
    { 
     //loop body 
     ++i; 
    } 
    //Fire an action 
} 

Điều này hoạt động tốt nếu n được đảm bảo là bội số của 5 hoặc nếu bạn không quan tâm đến việc kích hoạt sự kiện bổ sung ở cuối. Nếu không, bạn phải thêm nó vào cuối, và nó làm cho nó ít đẹp hơn.

//If n is not guaranteed to be a multiple of 5. 
while(i < n) 
{ 
    //loop body 
    ++i; 
} 

và int giới hạn thay đổi = n - 5 đến int hạn = n - 5 - (n% 5)

2

Đối với một bảng HTML, hãy thử này.

<?php 
$start = 0; 
$end = 22; 
$split = 5; 
?> 
<table> 
    <tr> 
    <?php for($i = $start; $i < $end; $i++) { ?> 
    <td style="border:1px solid red;" > 
     <?= $i; ?> 
    </td> 
    <?php if(($i) % ($split) == $split-1){ ?> 
    </tr><tr> 
    <?php }} ?> 
    </tr> 
</table>
+0

Số lượng $ cần được đổi tên. Tên "đếm" gợi ý rằng bạn sẽ nhận được nhiều ô đó. Nếu $ start không được đặt thành 0, bạn sẽ không nhận được một số ô bằng $ count. – Larsenal

+0

Điểm tốt Larsenal – Steve

0

Một biến thể:

 
int j=0; 
for(int i = 0; i < 500; i++) 
{ 
    j++; 
    if(j >= 5) 
    { 
     j = 0; 
     //do your stuff here 
    } 
} 

Tôi theo phong cách cũ, tôi nhớ khi bộ phận mất một thời gian dài. Với cpus hiện đại nó có lẽ không quan trọng nhiều.

+0

không phải là nếu phải là nếu (j == 5)? – mhd

-1
// That's an easy one 

for($i=10;$i<500;$i+=5) 
{ 
    //do something 
} 
+4

Mã trong vòng lặp này sẽ không được gọi trong mỗi lần chạy thứ 5, nó sẽ được gọi trên mỗi mã! Chỉ có biến '$ i' của bạn sẽ tăng 5 lần. – tbraun89

0

này hoạt động để có được một chỉ số sống trong vòng lặp foreach:

<?php 

// Named-Index Array 
$myNamedIndexArray = array('foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic', 'test' => 'one two', 'potato' => 'french fries', 'tomato' => 'ketchup', 'coffee' => 'expresso', 'window' => 'cleaner', 'truck' => 'load', 'nine' => 'neuf', 'ten' => 'dix'); 

// Numeric-Index Array of the Named-Index Array 
$myNumIndex = array_keys($myNamedIndexArray); 


foreach($myNamedIndexArray as $key => $value) { 
    $index = array_search($key,$myNumIndex); 

    if ($index !== false) { 
     echo 'Index of key "'.$key.'" is : '.$index.PHP_EOL; 

     if (($index+1) % 5 == 0) { 
      echo '[index='.$index.'] stuff to be done every 5 iterations'.PHP_EOL; 
     } 
    } 

} 
Các vấn đề liên quan