【发布时间】:2022-12-31 21:26:37
【问题描述】:
在解决循环排序问题时,出现索引错误。当我检查解决方案时,唯一的错误是我在 if 语句中编写条件的顺序。
这有效
if nums[i] > 0 and nums[i] <= n and nums[i] != nums[j]:
nums[i], nums[j] = nums[j], nums[i]
这没有
if nums[i] > 0 and nums[i] != nums[j] and nums[i] <= n:
nums[i], nums[j] = nums[j], nums[i]
我试着用谷歌搜索,但不明白为什么一个会起作用而另一个不起作用。如果一切正确,它只会跳入 if 语句,那么为什么顺序很重要?
我希望两者都做同样的事情。当跳入 if 语句时,第二个失败或第三个失败有什么关系呢?无论哪种方式,它都应该跳转到 else 语句。
【问题讨论】:
-
如果第二次检查已经是
False,则不会运行第三次检查。
标签: python if-statement