0

我有一个出租车应用程序,其中在表格中插入了乘车时间。每第 n 次(例如 5 次)乘车免费。我需要的是,当用户每 3 次乘坐超过 50 次时,应该是免费的。在下面的代码中,我设法每 5 次做一次,但是当它超过 50 次时,它开始从所有游乐设施中每 3 次计数一次,一切都被混搭了。是否可以每 5 次计数到 50 次,然后每 3 次计数一次?

    $i=$rows;
    if ($rows>50){
        if ($i != 0 && $i%3 == 0){
        echo "<p>This ride is free</p>";
        }
        elseif ($i%3 == 2){
        echo "<p>Next ride is free</p>";
        }
    $i--;
    break;
    }
    elseif ($rows<=50){
        if ($i != 0 && $i%5 == 0){
        echo "<p>This ride is free</p>";
        }
        elseif ($i%5 == 4){
        echo "<p>Next ride is free</p>";
        }
    $i--;
    break;
    }
4

3 回答 3

2

我认为这就是你要找的。我把它$i--;拿出break;来是因为我看不到它们的目的,除非这是在一个更大的循环中,但我仍然不明白它们的目的。无论如何。

$i=$rows;
if ($rows>50){
    $i = $i - 50;
    if ($i != 0 && $i%3 == 0){
        echo "<p>This ride is free</p>";
    } else if ($i%3 == 2){
        echo "<p>Next ride is free</p>";
    }
} else if ($rows<=50){
    if ($i != 0 && $i%5 == 0){
        echo "<p>This ride is free</p>";
    } else if ($i%5 == 4){
        echo "<p>Next ride is free</p>";
    }
}

在http://sandbox.onlinephpfunctions.com/上测试

for($rows=0;$rows<75;$rows++){
  $i=$rows;
  echo $rows;
  if ($rows>50){
      $i = $i - 50;
      if ($i != 0 && $i%3 == 0){
          echo ": This ride is free";
      } else if ($i%3 == 2){
          echo ": Next ride is free";
      }
  } else if ($rows<=50){
      if ($i != 0 && $i%5 == 0){
          echo ": This ride is free";
      } else if ($i%5 == 4){
          echo ": Next ride is free";
      }
  }
  echo "\n";

结果:

0
1
2
3
4: Next ride is free
5: This ride is free
6
7
8
9: Next ride is free
10: This ride is free
11
12
13
14: Next ride is free
15: This ride is free
16
17
18
19: Next ride is free
20: This ride is free
21
22
23
24: Next ride is free
25: This ride is free
26
27
28
29: Next ride is free
30: This ride is free
31
32
33
34: Next ride is free
35: This ride is free
36
37
38
39: Next ride is free
40: This ride is free
41
42
43
44: Next ride is free
45: This ride is free
46
47
48
49: Next ride is free
50: This ride is free
51
52: Next ride is free
53: This ride is free
54
55: Next ride is free
56: This ride is free
57
58: Next ride is free
59: This ride is free
60
61: Next ride is free
62: This ride is free
63
64: Next ride is free
65: This ride is free
66
67: Next ride is free
68: This ride is free
69
70: Next ride is free
71: This ride is free
72
73: Next ride is free
74: This ride is free
于 2013-09-11T19:51:30.427 回答
0

那些是什么?陈述?该代码是否在循环中?如果是,$i=$rows;那么循环内的线也是吗?因为如果是这样,$rows 将始终 > 50。

您应该将整个循环代码发布到问题中,以便我们有更好的看法。

于 2013-09-11T19:47:43.847 回答
0

使用此代码,第 53 次、第 56 次等游乐设施应该是免费的:

    if ($rows>50){
    if ($i != 0 && ($i - 50) %3 == 0){
于 2013-09-11T19:52:06.727 回答