【问题标题】:How to use nextind in a while loop [duplicate]如何在while循环中使用nextind [重复]
【发布时间】:2019-07-28 17:06:45
【问题描述】:

nextind 在 while 循环中不起作用

它可以在 julia> 命令行中逐步执行,但不会在 while 循环中执行

mezclado = "AαBβ"
tamaño = sizeof(mezclado)
i = 1
while i ≤ tamaño
    print(mezclado[i], " ")
    i = nextind(mezclado, i)
end

我期望 A α B β 我得到 UndefVarError: i not defined

【问题讨论】:

  • 我已将其标记为重复,因为这是一个常见问题并且已经多次回答,但为了完整起见,我还添加了一个如何修复代码的示例。

标签: julia


【解决方案1】:

i = 1
while i ≤ tamaño
    print(mezclado[i], " ")
    global i = nextind(mezclado, i)
end

let i = 1
    while i ≤ tamaño
        print(mezclado[i], " ")
        i = nextind(mezclado, i)
    end
end

得到你想要的。

(该问题与nextind 无关,而是与全局范围内的Julia 范围规则有关,详细说明请参见https://docs.julialang.org/en/latest/manual/variables-and-scoping/#Local-Scope-1)。简而言之:while 循环内的i 是一个局部变量,除非您声明它global(第一种方法)。第二种方法(使用let)创建一个封闭的局部范围,将i 定义为局部变量,您可以在嵌套的局部范围内对其进行更新。

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 1970-01-01
    • 2013-01-29
    • 2020-02-22
    • 2016-12-31
    • 1970-01-01
    • 2022-08-16
    • 2018-07-18
    • 2021-04-15
    相关资源
    最近更新 更多