###前提
paizaにチェックディジットを作成する問題を説いている際に、
表題のようになぜか、whileの処理が正常動作しないケースが出てきたので質問させてください。
###発生している問題・エラーメッセージ
配列に入れた数字をwhileを使って7回表示させるというプログラムを組みました。
途中の5行目から22行目に悪い影響を及ぼすソースがあるようで6回目が正常動作しません。
(該当部分をコメントアウトすると正常になりました。)
該当行の内容的には配列とは関連のない数字や変数の演算処理になりますので、
影響を及ぼさないはずなのですが、なぜか6回目が動かなくなります。
何が影響しているのか?ご教授頂けると幸いでございます。
###出力結果
1:2:3:4:5:6:7 1:2:3:4:5:6:7 1:2:3:4:5:6:7 1:2:3:4:5:6:7 1:2:3:4:5:6:7 1:2:3:4:5:6:7 0 1:2:3:4:5:6:7
###該当のソースコード
@data= (1,2,3,4,5,6,7); while(7>$i){ #ここから @no_data = split //, $data[$i+1]; $odd = $no_data[0]+$no_data[2]+$no_data[4]+$no_data[6]+$no_data[8]+$no_data[10]+$no_data[12]+$no_data[14]; $even_dat1 = $no_data[1]*2; if($even_dat1>9){ @even_array1 = split //, $even_dat1; $even_dat1 = $even_array1[0]+$even_array1[1] } $even = $even_dat1; $total =$odd +$even; $total1 = $total%10; if($total1==0){ print "$total1\n"; }else{ $total1 = 10 - $total1; } #ここまでをコメントアウトすると正常動作する print "$data[0]:$data[1]:$data[2]:$data[3]:$data[4]:$data[5]:$data[6]\n"; $i++; }
###補足情報(言語/FW/ツール等のバージョンなど)
足りない情報などがあれば用意しますので、ご指摘くださいませ。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。