C言語の文法入門(2)

今回は演算子・条件分岐・ループについてまとめる

演算子

算術演算子

基本的な算術演算子は他の言語と変わらない

足し算 x + y
引き算 x - y
掛け算 x * y
割り算 x / y ※答えが少数か整数かは変数の型次第
あまり x % y

論理演算子

&& 論理積(AND) || 論理和(OR) ! 否定(NOT) これも他の言語と変わらないですね

比較演算子

小なり	a < b
小なりイコール	a <= b
大なり	a > b
大なりイコール	a >= b	
イコール	a == b	
ノットイコール	a != b	

これも特に変化なし

ビット演算子

もちろんビット演算子もある

左シフト a << b
右シフト	a >> b
ビット否定	~a
ビット積	a & b
ビット和	a | b
ビット排他的論理和 a ^ b

その他の演算子

三項演算子 a ? b : c

C言語でも三項演算子は使えます

インクリメント

++x
x++

デクリメント

--x
x--

C言語のインクリメント、デクリメントは前置・後置の二種類があり、違いが出るのは以下の場合だ。

x = 2;
y = ++x;   xをインクリメントしてからyに代入
==> x == 3, y == 3
x = 2;
y = x++;   yに代入してからxをインクリメント
==> x == 3, y == 2

条件分岐

if文

C言語でのif文は

if(条件式){
  処理;
}else{
  処理;
}

というように書く 処理が一つだけの場合{}を省略することもできるが、そもそも{}が無いRubyを触っていたので、極力省略しないことにする。

#省略した場合
if(条件式)
  処理;
else
  処理;

switch文

C言語でのswitch文は

switch(条件式){
  case 数値1:
    処理;
    break;
  case 数値2:
    処理;
    break;
  default:
    処理;
    break;
}

というように書く。 ちなみに扱えるのは整数のみで、小数や文字はコンパイル時にエラーが出る。

ループ処理

For文

C言語でのfor文は

for(初期化;条件式;反復文) {
  処理;
}

というように書く。 for文でも処理が一つだけの場合{}を省略できる

while文

C言語のwhile文は二種類ある 一つは他の言語と同じように

while(条件式;) {
  処理;
}

という書き方。

もう一つはdo ~ while文と言われ、 do{処理}while(条件)という書き方になる。

do{
  処理;
}while(条件式);

do ~ while文では条件式が後ろに書かれているため、do内部の処理が終わってから条件の判定が行われる。 その為、一回目は条件がfalseでも処理が行われる。

break, continue

break文は現在のループを中断してループから抜け出す時に使う。 抜け出せるループは一つのみのため、多重ループを一度に抜け出すことはできない。 continue文はwhile文内部の処理を一度飛ばして、次のループに移る時に使う。

今回はこれまで 次回は関数についてまとめる。