プログラミングC: 投稿 5 – ループ構造
知らせます, 記事は、詳細情報を更新しました, 完全かつに理解しやすいです プログラミングC : 投稿 6 - Cにおけるforループ と プログラミングC: 投稿 7 - whileループ, やる... trong Cしばらく
A.Lenh無条件分岐
1.BREAK文:
通常break文は、停止したり、ループを終了するbreak文を使用して指定の条件でループを停止する条件を定義していないループを終了することが多いif文と組み合わせて使用されている. 休憩のために使用されるコマンド, 同時に, やる...しばらく, スイッチ. それを含むループコマンドexitを破る.
前回の記事では、残りの次のステートメントをスキップするスイッチにbreak文を使用する.
2.後藤
後藤コマンドは、指定されたラベルの後ろに特定のコマンドに移動します. ラベルは私達がにジャンプすべきコマンドの前にコマンドの名前です. 後藤は、ループを作成することができますif文と組み合わせる.
後藤コマンドの構文: 後藤ラベル;
構文ラベル: 題し : コマンド;
#include <stdio.h> int main(){ int a, kt; tieptuc : printf("Nhap a = "); scanf("%d", &a); switch(a) { case 1: printf("Mot"); break; case 2: printf("Hai"); break; case 3: printf("Ba"); break; case 4: printf("Bon"); break; case 5: printf("Nam"); break; default: printf("Khong phai so tu 1 den 5"); } printf("\nBan muon tiep tuc? 1 de tiep tuc, 0 de dung: "); scanf("%d", &kt); if(kt) goto tieptuc; return 0; }
ただし、次の点に注意することは後藤を使用する場合、:
-もし後藤とラベルで 1 後藤機能は、機能だけにジャンプさせ、別の関数にジャンプすることができません.
-ブロックの外側から内側にジャンプするgoto文を使用しないでくださいしかし、ブロックの外にジャンプさせた.
3.文を続行
ループ内で使用, 同時に, やる...しばらく. continueコマンドの実行は、最も近いループの条件式の制御を引き渡すいつ. つまり、ループの先頭に逆さまです, ループの中で、後に来るすべての注文は無視され続けない執行が含まれていません.
今、私たちは、コマンドループを学習しようとしているように無条件分岐命令のより明確な役割
[qads]
B.Cacコマンドループ
1.受注
ループ決定により決定された回数を繰り返し実行する (または文字列) 行為.
表現 :
- 式 1: 可変制御の初期値を初期化する.
- 式 2: 論理的に現在の状況に関連しているループを続ける.
- 式 3: 利用変化の割り当てtribien制御.
どのように動作する:
- ステップ 1: 式の値を決定する 1
- ステップ 2: 式の値を決定する 2 (試験条件すなわち真または偽 1 または 0). 式の値に応じて 2 これに従う 2 方向:
- + falseの場合 (0) ループを終了します
- + もし適切に (1) ミーティングポイントにコマンドブロックのためにリングに実行されます } ループの最後に、またはステートメントを継続するステップを灌漑します 3.
- ステップ 3: 式の値を計算します 3, その後に戻ってください。 2.
注意:
- 式 1 のためにダイヤルする場合、必ず一度だけ計算される.
- 式 2, 3 繰り返し可能な親族のために.
- 式 1, 2, 3 セミコロンで区切る必要があります ( ; ), 表現は、存在しなくてもよい 1,2 または両方 3 これは、セミコロンを調達する必要があります.
- 表現の場合 2 いいえ, ループは常に正しいと考えられている. 休憩を取るために、ループを脱出したい, 後藤HOACリターン.
- 各発現のためにカンマで区切られた人間の一連の式のように書くことができる。. 左から右へ、子式を決定される. シーケンス最初の式の式の善悪のように 2 最後の式によって決定される.
- 体内に (blockコマンド) 一つ以上の他の制御構造を含んでいてもよい, 別のループ.
- break文を持つ場合には, 最も深いループ構造は終了します.
- そこthedung後藤体内に目的の場所にループを終了.
- 体内では、特定の機能に戻るにはリターンのために使用することができます.
- 体内では、ループの先頭に移動し続けるコマンドで使用することができます (体内での残りのステートメントをスキップ).
のためのコマンドの例.
以下の例では、私はアレイに実行します (次の記事で学びます) あなたは、配列について明確でない場合はそのため、コマンド構造でちょうど興味を持っている のために 私たちの必要はありませ懸念配列.
VD1: 内での使用 のために 原子の数で 1 へ 10
#include <stdio.h> int main(){ int i; for (i = 1; i <= 10; i++) { printf("%-5d", i); } return 0; }
VD2: ループのための式はカンマで区切られた人間の表現のシーケンスである配列を逆にするforループを使用してください.
#include <stdio.h> int main(){ int i, j, n = 4, a[] = {1, 3, 7, 2}; // mang a gom 4 phan tu /* Xuat mang ban dau*/ printf("Mang ban dau: "); for (i = 0; i < n; i++) { printf("%-5d",a[i]); } printf("\n"); /* Dao nguoc mang*/ for (i = 0, j = n - 1; i <= j; i++, j--) { // doi cho 2 phan tu a[i] va a[j] int temp = a[i]; a[i] = a[j]; a[j] = temp; } /* Xuat mang sau khi dao nguoc*/ printf("Mang dao nguoc: "); for (i = 0; i < n; i++) { printf("%-5d",a[i]); } printf("\n"); return 0; }
VD3: このような式がない場合の配列を逆にするために、forループを使用してください 2, 我々は、ループを終了するには、break文を使用する
#include <stdio.h> int main(){ int i, j, n = 4, a[] = {1, 3, 7, 2}; // mang a gom 4 phan tu /* Xuat mang ban dau*/ printf("Mang ban dau: "); for (i = 0; i < n; i++) { printf("%-5d",a[i]); } printf("\n"); /* Dao nguoc mang*/ for (i = 0, j = n - 1; ; i++, j--) { if (i >= j) break; // doi cho 2 phan tu a[i] va a[j] int temp = a[i]; a[i] = a[j]; a[j] = temp; } /* Xuat mang sau khi dao nguoc*/ printf("Mang dao nguoc: "); for (i = 0; i < n; i++) { printf("%-5d",a[i]); } printf("\n"); return 0; }
VD4: イラストは、forループ内のステートメントを続ける.
#include <stdio.h> int main(){ int i, n = 4, a[] = {1, -3, -7, 2}; // mang a gom 4 phan tu printf("Cac so duong trong mang: "); for (i = 0; i < n; i++) { if (a[i] <= 0) continue; printf("%-5d",a[i]); } return 0; }
2. Whileステートメント
私は単純な理解することができます: 式が真であるが、その後のコマンドを実行します, 間違った出口
- 式: 式または式を指定できます. 子供は、カンマで区切られた複数の式である場合 (,) と表現の過ちは、最後の式によって決定されます.
- ボディしばらく (blockコマンド) 一つ以上の他の制御構造を含んでいてもよい.
- 体内のループの先頭に移動するにはcontinueコマンドを使用することができますが (体内であまりに残りのステートメントを設定).
- 発現は一定の非ゼロである場合、それは真であり、無限ループが起こっ. 必要に応じて、break文を使用することができますwhileループを取り除きたい, 後藤, のためのコマンドとして返す.
最高経営責任者(CEO: パスワードを入力する:
#include <stdio.h> #define PASS "nguyenvanquan7826" // dat pass int main(){ char pass[100]; /* Ham strcmp tra ve ket qua la 0 khi 2 chuoi bang nhau */ while(strcmp(pass, PASS) != 0) { printf("Nhap pass: "); gets(pass); } printf("Mat khau dung roi!"); return 0; }
3. しばらく順
私は単純な理解することができます: 正しい表現でコマンドを作る, 誰も間違った出口.
ここから、我々はコメントしている: 最初の場所で式が間違っている場合、ループは実行されないかもしれないが, それはまた、少なくとも実行することによって注文する一方 1 式は最初から間違っていたものの、.
最高経営責任者(CEO:
#include <stdio.h> int main(){ do { printf("khoi lenh duoc thuc hien\n"); } while(5 > 8); return 0; }
エクササイズ
投稿 1: キーボードからの入力にプログラムを書きます 1 整数のシーケンス. チェックして、シーケンス内のすべての素数を印刷.
投稿 2: 会話を示してプログラムを書きます 2 人々. とき1の 2 さよならを言う、停止.
[ポストをRPS-含ま=”2703″ ショートコード=”偽”]
の例で 2 もし (カラット) 後藤tieptuc; なぜ愛する、それが真のままであることを同等の表現を見つけることができません
カラット変数はあなたを調整変数であります. Cでのデフォルト、 1 その他の整数 0 右側に相当, 数 0 間違っています. だから場合に連絡(カラット) 大丈夫です.
ウェイター, %どこにもdおよび%異なる-5Dサー ? 私はあなたをしませ-6d%-5Dまたは他のDCに%を置き換えることができます ?
ドウ左に整列され示されない限り, そうでない場合は右のアラインド. あなたの代わりに常にDJK.
どうやらUbuntuの中のstrcmpコマンドで使用されていないウェイターはそうではありません ? 私はそれが報告さGeanyを使用します “strcmpのは、このスコープで宣言されていません”.
私はまだそれを使用します.
em dùng trong dev C cũng bị lỗi như vậy
à code a bị thiếu khai báo #include nên nó lỗi như vậy
例のセクションで 2, printfの(“\n続行したいです? 1 続行するには, 0 デ糞: “); あなたが使用していないと仮定すると 0 または 1 これは、CまたはKなどの文字を使用して、私はどのように彼と書きました?
それだけではただの仕事です. また、charはDJKあるユーザーが入力scanfのコマンドを入力します。.
scanf関数(“%℃”,℃);
例のセクションで 2, printfの(続行する " NDO? 1 続行するには, 0 デ糞: "); のみを入力してくださいなぜ彼は私に尋ねました 0 それが停止します !
あなたのループ条件ので、. あなたは、ループの動作を確認、それは大丈夫です.
作業を終了しますよ 1 lệnh場合はV Aを? 電子行います 2 それは近い連動をrブレースているにもかかわらず、上になった場合、またはそれ以上
だからだけではあなたのコードを確認.
cho e hỏi code trong Turbo C có thể viết được chương trình tạo hình ảnh không? và nếu được thì lệnh Do..while làm nhiệm vụ với khoảng bao nhiêu vòng lặp?
これは明らかにしない、彼であります. Chưa thử bao giờ 😉
もし (カラット) 後藤tieptuc;
anh cho em hỏi sao ko phải là if(kt==1) 後藤tieptuc?
もし (カラット) là sao ạ @@
Trong ngôn ngữ C thì 0 có nghĩa là sai, 1 có nghĩa là đúng. Do vậy if(カラット) hay if(kt == 1) là như nhau nhé.
のために (I = 0, j = n-1 ; で <= J; 私 , J–) {
anh comment cho cái code này với ạ, em ko hiểu 🙁
Trong vòng for này thì vẫn có 3 biểu thức ngăn cách nhau bởi dấu chấm phẩy. Nhưng mỗi biểu thức lại có nhiều lệnh:
+/ 式 1 含めて 2 lệnh khởi tạo i = 0 và j = n -1;
+/ 式 2 含めて 1 biểu thức so sánh i <= j +/ Biểu thức 3 gồm 2 lệnh là tăng i và giảm j.
ウェイター, nhưng nếu như vậy.
I = 0, j =3 . i = 1から, j = 2, I = 2, j=1 thì nó đã dừng có nghĩa nó chỉ swap 2 lần sao nó lại swap đc 4 lần luôn ạ 🙁
スワップ 2 lần thì nó đổi được 4 số rồi. mỗi lần 2 số mà.
Ban đầu là: 1, 3, 7, 2
Lần 1: 2 3 7 1
Lần 2: 2 7 3 1
anh giải thích rõ như debug đc ko ạ 🙁 em vẫn ko hiểu tại sao nó swap đc như vậy
anh ơi có phải là i=0, j=3, その後 1 swap cho 2(tương ứng thứ tự 0 1 2 3 配列内の), rồi i=1, j=2 thì swap tiếp 3 と 7 tương đương ( 1 2 配列内の)
đúng ko anh @@
はい.
%-5d là sao vậy anh
Nghĩa là dùng 5 khoảng trống để biểu diễn số nguyên và căn trái (dấu trừ)
Dùng vòng lặp để nhập vào 1 数, nếu nhập sai thì bắt nhập lại thì làm thế nào vậy, e nhập sai là nó thoát ra luôn.
問題は、その後、どのように間違っている、間違って入力されます, 条件付きの使用. whileループを使用することを提案または実行、しばらく
#含まれる
#含まれる
メインint型()
{
int型、A = 9, B = 1+(A ++);
printfの(” =%D T B =%D”, ザ·,B);
リターン 0;
}
私は=のためのハードコピーを求め 10 サー.
ああとあなたのコードであるため++. ++ = Aと同等になります + 1 万一の上昇値 9 アップ 10 権利であります.
a.emは、n個の町を理解していないため、ハローああanh.anh私は聞いてのために(I = 0;で<N;私 )
a.anhはa.Em世帯に答えることができるよう、それは感謝していないわけありません
nがあります 1 実行中の変数iを制限します. とき、私は < n thì vòng lặp còn hoạt động, i >= N、ループを停止します.
私の代わりに電子するように頼みました
int型温度= A[で];
ザ·[で] = A[J];
ザ·[J] = TEMP;
私は、各Aを使用しました[で] = A[J]; 退職結果 2 7 7 2 その代わり 2 7 3 1 なぜその先生は、?
このような使用の順列ができないため、 2 数. 私はそこに想像します 2 水のコップ: レモネードとコーヒー, スワップ 2 どのようにマグカップ?
/*
——————————–
実行に失敗しました “F:\ニャット (それ)\白 5 コーボントリックラップ男やもめ5.2.1.exe”:
エラー 216: このバージョンの %1 Windowsのあなたのバージョンと互換性がありません’
ランニング再. あなたがXを必要とするかどうかを確認するには、コンピュータのシステム情報を確認します
86 (32-ビット) またはx64 (64-ビット) プログラムのバージョン, その後、softwarに連絡
電子出版.
何かキーを押すと続行します . . . */
広告私は先生にこの問題を解決する方法を尋ね
あなたのDEV-cが勝つと互換性がありませんように見えます. あなたが勝つかどうかを確認します 32 ビットが使用されています 32 ビットNHE.
はい, ありがとうNguyenvanquan7826, 私はそれを先生を修正します
// BATP 5.3 = 1 + 1/2 + 1/3 +式Tによって最初の整数Nの逆数を算出ベトナムプログラム…+1/N
#含まれる
メインint型 (){
int型の私,N;
フロートS;
S = 0;
printfの (“番号をクリックしてNラ: “);
scanf関数 (“%-5D”,&N);
のために (i = 1から;で<= N;私 ){
S + =(フロート)1/で;
}
printfの ("Tong cua day so la: %0.2f",S);
リターン 0;
}
兄弟姉妹は私を尋ねてみましょう, 電子コードを書いて、上のプログラムを実行します, しかし、あなたが入力したテストのn = 2 競争プログラムは、その結果を返します。 15.40 ありません 1.50, 私は、どの時点でエラーがわかりません, 彼女は、彼が子供を願っていますDUM. Eのおかげ!
注文が%で入力されたn個なぜ-5D?
あなたの軍隊のためにありがとうございました, そして、あなたは先生を計算します!
シーケンス最初の式の式の善悪のように 2 最後の式によって決定される.
–自問してみてください, あなたがいないことに、現在の注目を集めるための例を持っています???
最高経営責任者(CEO: のために (int型のi = 0, J = 0; で < 3, j < 8 ; i++, j++) thì điều kiện dừng sẽ phụ thuộc vào j < 8 chứ không phải i < 3.
聞いてみましょう…いつ使うの?
あなたが何度も何度も何かをする必要があるとき, 特に事前に反復回数を知っている.