昨日に引き続き質問です。
取り組んでいる物:数字で分岐するアドベンチャー
昨日質問した問題と同様の問題なのですが、解決方法がわからないので質問させて頂きます。
上記のプログラムで実行し、1→1 と進行していくと Run-Time Check Failure #3 - The variable 'd' is being used without being initialized. というエラーが出てしまいます。
このエラーが出た場合は d が初期化されていないからエラーが出る。と教えて頂いたのですが、どこを初期化すればいいのかわかりません。
返答をお待ちしております。
エラーが出てしまいます。
Re:エラーが出てしまいます。
else if(a==2){sentakud(d);}
↑ここでdを初期化しないで、関数に渡してるからだと。
だから何か値を入れておけばいいかと。
↑ここでdを初期化しないで、関数に渡してるからだと。
だから何か値を入れておけばいいかと。
Re:エラーが出てしまいます。
boxさんの聞いてるやつ私も気になります。
前にfor(;;a++,b++)
みたいなのみたことありますけどそれですか?
あれwhile文でしたっけ?
これは「もしくは」とかの意味があるんですか?
a!=0でもいい気がしますけど…意味を教えてもらってもかまいませんか?
前にfor(;;a++,b++)
みたいなのみたことありますけどそれですか?
あれwhile文でしたっけ?
これは「もしくは」とかの意味があるんですか?
a!=0でもいい気がしますけど…意味を教えてもらってもかまいませんか?
Re:エラーが出てしまいます。
シエルさん:ご返答ありがとうございます!
すいません、どの時点でなんという値を入れればいいのかいまいちわからないので、差し支えなければ例を教えてもらえないでしょうか?
boxさん.パコネコさん:ご返答ありがとうございます!
えっと・・・
特に意味はないのですが、これでも動くのかな~、と実験でやってみたのをそのままにしていたみたいです。
すいません。
すいません、どの時点でなんという値を入れればいいのかいまいちわからないので、差し支えなければ例を教えてもらえないでしょうか?
boxさん.パコネコさん:ご返答ありがとうございます!
えっと・・・
特に意味はないのですが、これでも動くのかな~、と実験でやってみたのをそのままにしていたみたいです。
すいません。
Re:エラーが出てしまいます。
>特に意味はないのですが、これでも動くのかな~、と実験でやってみたのをそのままにしていたみたいです。
すいません。
if(a == 1, 2, 3)....
一応動く事には動きますが、このコードはaと1もしくは2もしくは3と等しいと言う意味にはなりません。
カンマ演算子の役割は、カンマ演算子で区切られた式は必ず左から評価される事、そしてカンマ演算子が現れた時点で副作用が完了することの2つです。
そして、カンマ演算子が返す値は後に続く式の結果となります。
つまり、上記のコードは if(3)... と等価となります。
すいません。
if(a == 1, 2, 3)....
一応動く事には動きますが、このコードはaと1もしくは2もしくは3と等しいと言う意味にはなりません。
カンマ演算子の役割は、カンマ演算子で区切られた式は必ず左から評価される事、そしてカンマ演算子が現れた時点で副作用が完了することの2つです。
そして、カンマ演算子が返す値は後に続く式の結果となります。
つまり、上記のコードは if(3)... と等価となります。
Re:エラーが出てしまいます。
>>すいません、どの時点でなんという値を入れればいいのかいまいちわからないので、差し支えなければ例を教えてもらえないでしょうか?
とりあえず、全ての条件分岐に対応できるような組み方をしていただければ問題ありません。
とりあえず、全ての条件分岐に対応できるような組み方をしていただければ問題ありません。
