- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if文がうまく動きません。教えてください。)
if文がうまく動かない理由について教えてください
このQ&Aのポイント
- if文がうまく動かない理由について教えてください。
- 上記のプログラムでは、p3=0の時はc[j3]=theta1; d[j3]=theta2;が実行されると考えているのですが、else文の方に入ってしまいます。
- c[j3]=theta1*co[p3]+theta2*si[p3]; d[j3]=theta2*co[p3]-theta1*si[p3];が実行される理由を教えていただけないでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
if(p3=0){ を if(p3==0){ にしてください。(=を2つ書く) if文で比較する場合は、=を2つ書きます。 C言語では、=が1つでもエラーになりませんが、意味が異なってきます。 比較する場合は、必ず=を2つのが、本来の比較方法です。 (C#等のほかの言語ではif文で=を1つにするとエラーにしてくれるのですが、C言語はエラーにしてくれませんので、気をつけてください) また、同じように代入文は=が1つですが、=を2つ書いてもエラーになりません。 a=3; b==10; ・・・エラーにはならないが、bに10が代入されるわけではない。 (これも気をつけてください)
その他の回答 (3)
- asuncion
- ベストアンサー率33% (2127/6289)
回答No.4
>#1さん >p3=0 の代入なら値 0 だから else に行くのかな? そのとおりです。 if (p3 = 0) { っていうif文は、ぶっちゃけ if (0) { って書いたのと同じ。なぜなら、 p3 = 0 っていう式は、p3に0を代入して、その結果(0)を評価するから。 >普通は,代入したら true になると思うが, これは意味不明です。
質問者
お礼
ありがとうございます。 うまくいきました。
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.2
p3=0 じゃなくて p3==0 が正しいから
質問者
お礼
ありがとうございます。 うまくいきました。
- m0r1_2006
- ベストアンサー率36% (169/464)
回答No.1
p3=0 の代入なら値 0 だから else に行くのかな? 普通は,代入したら true になると思うが, p3 == 0 の間違いだろう.
質問者
お礼
ありがとうございます。 うまくいきました。
お礼
ありがとうございます。 うまくいきました。