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

阿里纳克

假设你想循环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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在同一行中伸缩开始条件

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何使div在同一行中

来自分类Dev

同一行中的按钮

来自分类Dev

在同一行中对齐TextViews

来自分类Dev

如何使div在同一行中

来自分类Dev

在c中打印同一行

来自分类Dev

遍历同一行中的元素

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    在同一行中伸缩开始条件

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

    如何使div在同一行中

  25. 25

    同一行中的按钮

  26. 26

    在同一行中对齐TextViews

  27. 27

    如何使div在同一行中

  28. 28

    在c中打印同一行

  29. 29

    遍历同一行中的元素

热门标签

归档