HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0225
ノダッシー数字と文字列の足し算のやり方について3解決


ノダッシー

リンク

2015/2/25(Wed) 11:52:35|NO.67517

1_アルパカ.jpgと2_アルパカ.jpgという画像ファイルがあります
これをランダムに表示する為に

randomize
path =rnd(2)+1 + "_アルパカ.jpg"
picload path
のように書いてみましたが上手く表示できません
mes path を試してみたら2しか表示されないのです
何故こうなってしまうのか、解決方法等あれば教示ください



この記事に返信する


kanahiron

リンク

2015/2/25(Wed) 12:21:32|NO.67520

大抵の言語は変数を+でつなぐと左側の変数の型に合わせて計算されます
rnd(2)+1 + "_アルパカ.jpg"
だと、
整数型+整数型+文字列型
なので、整数型+整数型+整数型に変換してから計算されます
int("_アルパカ.jpg")は0になるので、
rnd(2)+1+0が表示されるということです
解決方法は
1,左側の型を文字列型にする
path = ""+rnd(2)+1 + "_アルパカ.jpg"
文字列型+整数型+整数型+文字列型
→文字列型+str(整数型)+str(整数型)+文字列型
str(2)は"2"になるので意図した動作です

2,整数型を文字列型に変換する
path = str(rnd(2)+1) + "_アルパカ.jpg"
str(整数型+整数型)+文字列型
→文字列型+文字列型
でOKです

また明示的な初期化をしない変数は整数型になります
念の為に上の方に path = ""を書いたほうがいいかもしれません



kanahiron

リンク

2015/2/25(Wed) 12:23:10|NO.67521

蛇足ですが
"あいうえお"*2 で
"あいうえおあいうえお" になる言語もあります HSPではエラーですね



ノダッシー

リンク

2015/2/25(Wed) 13:09:15|NO.67523

型が整数型になっていた為に計算できなかったのですね
勉強になります
ありがとうございました



ONION software Copyright 1997-2023(c) All rights reserved.