0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

いきなり出てくるとビビるfor文の条件式の省略した形

Posted at

##for文とは
for文は処理を何度も繰り返しして行いたいときによく使用する文法です。

for文の例に問題を解いてみましょう。
変数nの中に何か値を入力したら、その数だけ*を出力するプログラムを書いてみました。
for文自体の解説記事ではないのでここの解説は割愛させていただきます。

int n;
cin >> n;

for(int i = 0;i < n;i++){
   cout << i;
}

##条件式の省略されているところ

ここで自分で詰まったのが下の3つです。

//1つ目
for(;i< n;i++){

}
//2つ目
for(i = 0;;i++){
  
}
//3つ目
for(i = 0;i < n;){
  
}

##1
まず一つ目の解説
for文より前で定義していた変数をfor文で繰り返し処理をしたい場合for文の最初の条件を処理することができます。

一番上の例文で書いてみましょう。

int n;
cin >> n;
int i;//ここであらかじめint iを定義する

//↓の条件式の中でiを使いたかったら省略できます。というか警告がでますね。
for(;i < n;i++){
   cout << i;
}

##2
続いて2つ目の処理を解説します。
2つ目の条件式を省略した場合無限大に発散するような処理になります。
この場合0~∞の処理になります。ただしbreakすることで処理を途中中断することが可能です。
メリットは条件の中で範囲を決めれるところですね。
あまり使い勝手はよくない気がします。

//この場合0~∞の処理になります。ただしbreakすることで処理を途中中断することが可能です。

for(int i = 0;;i++){
   if(i < 5){
      break;
   }
   cout << i;
}

##3
3つ目の処理について説明します。
この処理は値が増減しないので、永遠に条件式の1つ目で指定した初期値が永遠に出力されてしますだけになります。
これもあまり使い勝手はよくなさそうですが、処理の中で増減の間隔を変えることができるんですね。

for(i = 0;i < n;){
  cout << i;
  i++//のように条件の中で増減の間隔をかえれます。
}

そんな感じで終わりにしたいと思います。
今回は急いでいたので少し雑に書いてしまいましたがある程度要点は抑えたと思っているので許してください。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?