2つのソートされた配列を比較する練習問題プログラムを実行しようとしてひっかかった。
#3 function main()
a=sort(rand(1:100,30))
b=sort(rand(1:100,30))
j=1
k=1
while j<=30 && k<=30
#2 global j
if a[j] > b[k]
#1 j=j+0
k=k+1
elseif a[j] < b[k]
j=j+1
else
println((j,a[j],k,b[k]))
j=j+1
k=k+1
end
end
#3 end
#3 main()
UndefVarError: j not defined
Stacktrace:
[1] top-level scope at ./In[25]:8
Whileの中の変数 j が未定義だというエラーである。調べてみると,これが Julia 1.0の仕様であるらしい。そこで,上記のプログラムにおいて,コメント#1,#2,#3をのいずれかをはずすとエラーは回避された。
このあたりの Scope of Variables をちゃんと読んでおけということですね。
0 件のコメント:
コメントを投稿