
#include <iostream>
using namespace std;
int main()
{
int s = 1;
for(int i=0; i<5; i++){
for(int k=0; k<s; k++){
cout << '*';
}
cout << '\n';
s++;
}
return 0;
}
をコンパイラすると、
*
**
***
****
*****
の様に出力されます。
この二つの**マークの所から、なぜ、そうなるのかが理解できません。
for(int k=0; k<s; k++){
の k<s;の所は最初、0<1;となって。*が一つ出力され、k++でkが1になり'\n'で改行され、
s++でsが2になり、1<2;となり出力の2行目に*が一つでます。でも1<2なので、\nになってしまいます。
しかし、この考え方は間違っているので、理解できないのです。
要点は**がどの様な手順で出力されているのかが解りません。
**が理解できれば***や、****も理解できると思います。
for(int k=0; k<s; k++){
cout << '*';
}
のk++のインクリメントは{ }のブロック内の最後の地点で、1プラスになるのですよね?
No.1
- 回答日時:
> s++でsが2になり、1<2;となり出力の2行目に*が一つでます。
ここが違う。s が2になり、までは良いのだけれど、for(int k=0; k<s; k++) のところに来ると、
また k は0から始まります。だから
0<2 となり * が出力され
k++ されて 1<2 となり * が出力され
k++ されて 2<2 となり、ループを抜ける
というのが s が2のとき。
# 分かり難かったら、わからない文書を指して補足願います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
KEYENCEのシーケンスプログラム...
-
Microsoft365で作ったword文書...
-
cout と cerrの違い
-
COBOLの桁落ち
-
COBOLのMOVEで桁数が異なる場合
-
ACCESS クエリ→フォーム...
-
詳しくないので、どなたかお教...
-
Net User コマンドで一覧表示
-
音声データのリアルタイム処理
-
PD充電器について
-
Excel VBAで値を変えながら、pd...
-
VB6で 先頭00をつけたいです...
-
FLEXSOLARパネルからAmazonで買...
-
スマホ充電器購入にあたり
-
MMDでavi出力が出来ない
-
発電機の出力について
-
printfですぐに出力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
Microsoft365で作ったword文書...
-
プログラムについての質問です...
-
cout と cerrの違い
-
Accessのテーブルからcsv出力す...
-
coutで出力した文字を消去する...
-
TV出力ポートをOFFにすれば良い...
-
Windows Formアプリからコンソ...
-
4種類(A4縦、A4横、A3縦、A3横)のヘ...
-
KEYENCEのシーケンスプログラム...
-
FLEXSOLARパネルからAmazonで買...
-
PD充電器について
-
COBOLのMOVEで桁数が異なる場合
-
VBAのExecメソッドで画面を非表...
-
スマホ充電器購入にあたり
-
MMDでavi出力が出来ない
-
コンセントの電力は入力と出力...
-
ListViewの複数選択について
-
ACCESS クエリ→フォーム...
おすすめ情報