You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中使用stride函数打印指定数字序列出错,如何修正?

修正Swift打印数字序列的问题

嘿,我来帮你搞定这个数字序列的打印问题!你的代码现在有两个小问题导致输出不符合预期,咱们一步步来修正:

问题分析

  1. 内层循环范围错误:你用了stride(from: 1, to: i, by: 1),这里的to是不包含终点值的。比如当i=1时,内层循环的范围是1到1,根本不会执行,直接跳到打印*的步骤;当i=2时,j只会取到1,所以只打印1就结束内层循环了。
  2. 多余的*输出:你的代码最后特意打印了*\n,但预期输出里是没有这个星号的,这也是结果跑偏的关键原因之一。

修正方案

这里给你两种简单的修正方式:

方式一:使用闭区间循环(更简洁)

直接用Swift的闭区间运算符...来遍历,这样能包含i的值,同时去掉多余的星号:

for i in 1...4 {
    for j in 1...i {
        print(j, terminator: "")
    }
    print() // 换行
}

方式二:调整stride的终点值

如果你还是想用stride语法,把内层循环的to改成i+1,同时去掉星号:

for i in stride(from: 1, to: 5, by: 1) {
    for j in stride(from: 1, to: i+1, by: 1) {
        print(j, terminator: "")
    }
    print() // 换行
}

运行任意一种代码,都会得到你想要的输出:

1
12
123
1234

内容的提问来源于stack exchange,提问作者raaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:40:12