• ベストアンサー
※ 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];が実行される理由を教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

if(p3=0){ を if(p3==0){ にしてください。(=を2つ書く) if文で比較する場合は、=を2つ書きます。 C言語では、=が1つでもエラーになりませんが、意味が異なってきます。 比較する場合は、必ず=を2つのが、本来の比較方法です。 (C#等のほかの言語ではif文で=を1つにするとエラーにしてくれるのですが、C言語はエラーにしてくれませんので、気をつけてください) また、同じように代入文は=が1つですが、=を2つ書いてもエラーになりません。 a=3; b==10;  ・・・エラーにはならないが、bに10が代入されるわけではない。 (これも気をつけてください)

saterain20
質問者

お礼

ありがとうございます。 うまくいきました。

その他の回答 (3)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

>#1さん >p3=0 の代入なら値 0 だから else に行くのかな? そのとおりです。 if (p3 = 0) { っていうif文は、ぶっちゃけ if (0) { って書いたのと同じ。なぜなら、 p3 = 0 っていう式は、p3に0を代入して、その結果(0)を評価するから。 >普通は,代入したら true になると思うが, これは意味不明です。

saterain20
質問者

お礼

ありがとうございます。 うまくいきました。

回答No.2

p3=0 じゃなくて p3==0 が正しいから

saterain20
質問者

お礼

ありがとうございます。 うまくいきました。

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.1

p3=0 の代入なら値 0 だから else に行くのかな? 普通は,代入したら true になると思うが, p3 == 0 の間違いだろう.

saterain20
質問者

お礼

ありがとうございます。 うまくいきました。

関連するQ&A