对于同一行中循环的不同结束条件?

阿里纳克

假设你想循环from i=0 to i=n and j=0 to j=mm!=n是否可以将以下两个循环缩短为一个?

for(int i=0; i<=n; i++){}
for(int j=0; j<=m; j++){}

为了某事

for(int i=0,j=0; i<=n, j<=m; i++, j++){}

本质上,我希望循环说“将i和j都增加一个,如果i = n停止增加i,但是如果m> n则继续增加j”,或者如果if相反n>m

看起来微不足道或愚蠢,但我很好奇。

马克·艾略特

天真的,我们想做类似的事情:

for(int i = 0, j = 0; i <= n || j <= m; i = Math.min(n, i+1), j = Math.min(m, j+1))

......但是这不会终止,因为最大值in和最大值jm,和其中的一个将永远是正确的。

如果您愿意让(for n < mi在结束,那么问题就简单得多n+1,我们可以这样写:

for(int i = 0, j = 0; i <= n || j <= m; i = Math.min(n+1, i+1), j = Math.min(m+1, j+1))

仅当您想要完成递增时保留(for n < mi = n时,这才很复杂j复杂性被隔离,以使循环在正确的时间终止,同时仍然允许j完成递增。

为了使循环终止,我们希望将较大的数字增加一个最大值,以使其超过最大值,从而达到终止条件。既然我们至少知道i <= n并且j <= m永远是真实的,那么让我们集中精力使它们始终都是真实的,并将终止条件更改为

i <= n && j <= m

在这种情况下n < mi会在之前完成递增j,因此我们需要让其j超出有效最大值后再递增一个,以便违反i <= n && j <= m保持类似的条件n > m,但相反,我们需要i过去一个n

但是请注意,如果使用n == m,我们可以安全地将两个值都超过各自的限制,并且终止条件将同时达到。下面手柄环路任何正输入nm和终止给定正确的conditons,同时允许中的较小nm成为各个迭代器的最大值。

for(int i = 0, j = 0, nadj = n + (n >= m ? 1 : 0), madj = m + (m >= n ? 1 : 0) 
   i <= n && j <= m;
   i = Math.min(nadj, i+1), j = Math.min(madj, j+1))

值得注意的是,我们在第一部分中进行计算nadjmadj以避免在每次迭代期间重新计算它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在同一行unix命令中循环并打印星号

来自分类Dev

如何使div在同一行中

来自分类Dev

如何选择同一行中不同公司的数据?

来自分类Dev

基于数据帧同一行中不同列的值的累积总和(避免循环)

来自分类Dev

Swift:对于循环结束条件仅评估一次?

来自分类Dev

如何与熊猫循环:“对于文件中的每一行,对于每一行中的列”

来自分类Dev

通过将不同组中的行追加到同一行来重塑数据

来自分类Dev

编写一个查询,在同一行上显示不同条件的记录计数

来自分类Dev

同一行中的按钮

来自分类Dev

diff报告同一行中2个文件中的不同

来自分类Dev

对于同一行中循环的不同结束条件?

来自分类Dev

如何从同一张表的两列中获得一行中的不同结果?

来自分类Dev

同一行中的<a>超链接的样式不同

来自分类Dev

在同一行中对齐TextViews

来自分类Dev

如何使div在同一行中

来自分类Dev

在c中打印同一行

来自分类Dev

在同一行中伸缩开始条件

来自分类Dev

在不同的数组中搜索同一行C#

来自分类Dev

对于r中的每个组,将NA替换为同一列的另一行中的值

来自分类Dev

如何选择同一行中不同公司的数据?

来自分类Dev

PHP Bootstrap以不同的网格大小结束一行

来自分类Dev

Excel VBA-对于下一个循环多次复制同一行

来自分类Dev

遍历同一行中的元素

来自分类Dev

使用循环打印listview会在同一行C#中打印所有行

来自分类Dev

计算联合中的不同列并显示在同一行中

来自分类Dev

在同一行中为 psexec 使用 for 循环

来自分类Dev

同一行中数字类型的 Tableau 条件格式

来自分类Dev

MySQL选择同一行中的不同数据到同一个查询中

来自分类Dev

在Ruby中的同一行中打印不同大小数组的元素

Related 相关文章

  1. 1

    在同一行unix命令中循环并打印星号

  2. 2

    如何使div在同一行中

  3. 3

    如何选择同一行中不同公司的数据?

  4. 4

    基于数据帧同一行中不同列的值的累积总和(避免循环)

  5. 5

    Swift:对于循环结束条件仅评估一次?

  6. 6

    如何与熊猫循环:“对于文件中的每一行,对于每一行中的列”

  7. 7

    通过将不同组中的行追加到同一行来重塑数据

  8. 8

    编写一个查询,在同一行上显示不同条件的记录计数

  9. 9

    同一行中的按钮

  10. 10

    diff报告同一行中2个文件中的不同

  11. 11

    对于同一行中循环的不同结束条件?

  12. 12

    如何从同一张表的两列中获得一行中的不同结果?

  13. 13

    同一行中的<a>超链接的样式不同

  14. 14

    在同一行中对齐TextViews

  15. 15

    如何使div在同一行中

  16. 16

    在c中打印同一行

  17. 17

    在同一行中伸缩开始条件

  18. 18

    在不同的数组中搜索同一行C#

  19. 19

    对于r中的每个组,将NA替换为同一列的另一行中的值

  20. 20

    如何选择同一行中不同公司的数据?

  21. 21

    PHP Bootstrap以不同的网格大小结束一行

  22. 22

    Excel VBA-对于下一个循环多次复制同一行

  23. 23

    遍历同一行中的元素

  24. 24

    使用循环打印listview会在同一行C#中打印所有行

  25. 25

    计算联合中的不同列并显示在同一行中

  26. 26

    在同一行中为 psexec 使用 for 循环

  27. 27

    同一行中数字类型的 Tableau 条件格式

  28. 28

    MySQL选择同一行中的不同数据到同一个查询中

  29. 29

    在Ruby中的同一行中打印不同大小数组的元素

热门标签

归档