1。円形構造
ループステートメントは、ループ条件が満たされたときに特定のコードを繰り返し実行できます。この繰り返しコードは、ループボディステートメントと呼ばれます。このループ本体が繰り返し実行されると、ループを終了するために適切な時期にループ判断条件をfalseに変更する必要があります。そうしないと、ループは引き続き実行され、デッドループが形成されます。
ループステートメントの構成:
初期化ステートメント:1つ以上のステートメント、これらのステートメントはいくつかの初期化操作を完了します。
決定条件声明:これはブール式であり、ループ本体を実行するかどうかを決定できます。
ループボディステートメント:この部分はループボディステートメントであり、これは私たちが何度もしなければならないことです。
制御条件ステートメント:この部分は、次のサイクル判断条件がサイクル本体の終了後に実行される前に実行されます。ループ条件の変数を制御することにより、ループは適切な時期に終了します。
例:「helloworld」がコンソールで10回出力される場合、
初期化ステートメント:初期化を初めて定義します。
判断条件声明:回数は10倍を超えることはできません。
ループボディステートメント:「Helloworld」ステートメントを出力します。
コントロール条件ステートメント:次回に変化する回数。
2。ループ構造(ループステートメント用)
ループステートメント形式の場合:
for(初期化声明、判断条件ステートメント、制御条件ステートメント){
ループボディステートメント;
}
実行プロセス:
A:初期化ステートメントを実行します
B:判断条件のステートメントを実行して、結果が真か偽かを確認します。それがfalseの場合、ループは終了します。それが本当なら、実行し続けてください。
C:ループボディステートメントを実行します
D:制御条件ステートメントを実行します
E:Bに戻って続行します
フローチャート:
注:
(1)判決の結果条件声明はブール型です
(2)ループステートメントが単一のステートメントである場合、ブレースは省略できます。複数のステートメントの場合、ブレースを省略できません。省略しないことをお勧めします。
(3)一般的に言えば、左ブレースがある場合、セミコロンはありません。セミコロンがある場合、左ブレースはありません。
例コード:
1。1〜100の間の偶数の合計を見つけます:
/*要件:A:合計1〜100を見つけます。 B:1-100*/class fortest1の間の偶数の合計を見つけます{public static void main(string [] args){//合計1〜100の合計を見つけます。 int sum1 = 0; for(int x = 1; x <= 100; x ++){sum1+= x; } system.out.println( "1-100 is:"+sum1); System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // int sum3 = 0;2。5の要因を見つけます:
/*要件:5の要因を見つけます。要因とは何ですか? n! = n*(n-1)!ルールn! = n*(n-1)*(n-2)*...*3*2*1サムイデオロギー。要因思考を見つけます。 */class fortest2 {public static void main(string [] args){//最終結果変数int jc = 1を定義します。 //ここのxは、実際に(int x = 1; x <= 5; x ++)for(int x = 2; x <= 5; x ++){jc *= x; } system.out.println( "1-5要因IS:"+jc); }}3。コンソールにすべての「narcissus番号」を出力します。
/*要件:コンソール分析にすべての「narcissus番号」を出力します。「ナルシッスの数字」とは何かがわかりません。いわゆるナルシッスの数字は3桁の数字を指し、数字のキューブ合計は数字自体に等しくなります。例:153は水仙です。 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153 A:3桁の数字は実際に範囲を示しています。 B:forループを通じて、各トリプル数字番号を取得できますが、問題はこのトリプル数字の10、および数百のデータを取得する方法です。データのデータのデータをどのように取得しますか?データがあると仮定します:153 GE:153%10 = 3 SHI:153/10%10 = 5 BAI:153/10/10%10 = 1 QIAN:X/10/10/10%10 WAN:X/10/10/10/10%10 ... */class fortest3 {public static void main(string [] args){//トリプル数字は実際に範囲を教えてくれます。 for(int x = 100; x <1000; x ++){int ge = x%10; int shi = x/10%10; int bai = x/10/10%10; // ge*ge*ge*ge+shi*shi*shi+bai*bai*baiはデータと比較されます。 System.out.println(x); }}}}3。ループ構造(ループステートメント中)
ループステートメント形式:
while(判決条件の声明){
ループボディステートメント;
}
//拡張形式の初期化ステートメント。
while(判決条件の声明){
ループボディステートメント;
制御条件ステートメント。
}
フローチャート:
forループと時間ループの違い:
ループステートメントの場合、およびループステートメントは同等に変換できますが、まだいくつかの小さな違いがあります。
(1)使用の違い:
制御条件ステートメントによって制御される変数は、forループの終了後にアクセスすることはできず、whileループが終了した後も使用し続けることができます。それを引き続き使用したい場合は、whileを使用してください。それ以外の場合は、使用することをお勧めします。その理由は、forループが終了し、変数がメモリから消え、メモリ使用量の効率を改善できるためです。
(2)シーンの違い:
ループは、範囲の判断のための操作に適していますが、ループは不明確な判断数の動作に適しています
例コード:
私たちの国で最も高い山はエベレスト山:8848mです。私は今、厚さ:0.01mの十分な大きさの紙を持っています。エベレスト山の高さよりも厚さが低くないことを確認するために、何回折りたたみますか?
/*私たちの国で最も高い山はエベレスト山:8848mです。私は今、厚さ:0.01mの十分な大きさの紙を持っています。何回折りたたみますか、エベレスト山の高さよりも厚さが低くないことを確認できますか?分析:A:統計変数を定義します。デフォルト値は0 Bです。最高のピークはエベレストマウントです。これは最終的な厚さです。私は今、十分な大きさの紙を持っています。厚さは0.01mです。これは初期の厚さです。C:折りたたみ、エベレスト山の高さよりも厚さが低くないことを確認できますか?一度折りたたむとどのような変化が起こりますか?つまり、厚さは以前の2倍の厚さです。 D:各変化の厚さがエベレスト山の高さを超えない限り、統計変数++ e:出力統計変数が折りたたまれます。 */class whiletest01 {public static void main(string [] args){//統計変数を定義する、デフォルト値は0 int count = 0です。 //最高のピークはエベレストマウントです:8848mこれは最終的な厚さです//私は今では十分な大きさの紙があり、0.01mは初期厚さです//単純さのために0.01になり、8848が884800 int end = 884800になりました。 int start = 1; while(Start <End){//各変化の厚さがエベレスト山の高さを超えない限り、それを折り、統計変数++カウント++。 //一度折りたたまれた場合、どのような変更が起こりますか?厚さは前の2倍です。開始 *= 2; System.out.println( "th"+count+"厚さは"+start); } //出力統計変数。 System.out.println( "積み重ねられる"+count+"time"); }}4。ループ構造(do…while loopステートメント)
基本形式:
する {
ループボディステートメント;
} while((判断条件声明); [/code]
拡張形式:
初期化ステートメント;
する {
ループボディステートメント;
制御条件ステートメント。
} while((判断条件声明); [/code]
フローチャート:
5。周期構造の違いと予防策:
3つのループステートメントは実際に同じ関数を完了することができます。つまり、同等に変換できることを意味しますが、まだ小さな違いがあります。
do…一方、ループは少なくとも1回ループ本体を実行します。ループの場合、および条件が真の場合にのみループボディを実行します
1。注:
プログラムを作成するときは、forループを優先し、whileループを考慮し、最後にdo ... while loopを考慮する必要があります。
次のコードはデッドループです。
while(true){}
のために(;;){}
2。ループのネストされた使用:ループステートメントのループ本体自体はループステートメントです
(1)質問1:4行と5列で星(*)パターンを出力してください。
ヒント:外側のループによって制御される行数、内側ループで制御される列の数
/*要件:次の形状を出力してください(int x = 0; x <5; x ++)の列{for(int y = 0; y <5; y ++){system.out.print( "*"); } system.out.println(); } system.out.println( "------------------------------------------------------------------------------------------------------------------------- 5列の形状を実装しました//これは私たちが望むものではありません//列数の変更// y = 0、y <= 1、y ++ // 3列目:3列y = 0、y <= 2、y ++ // 4列y = 0、y <= 3、y ++ // 5列目:5列y = 0、y <= 4、y ++ //外側ループでxの変更を見ると、x = 0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,00. for(int x = 0; x <5; x ++){for(int y = 0; y ++){system.out.print( "*");(2)質問2:コンソールに9つの乗算テーブルを出力します。
/*要件:コンソールに9つの乗算テーブルを出力します。最初に9つの乗算テーブルを書きます:1*1 = 1 1*2 = 2 2*2 = 4 1*3 = 3 2*3 = 6 3*3 = 9 1*4 = 4 2*4 = 8 3*4 = 12 4*4 = 16 ... 1*9 = 9 = 18 3*9 = 27 ... ********* ********* *********注: '/x' xは何を意味しますか、この方法は転送文字と呼ばれます。 '/t'タブ文字の位置(tabtab key) '/r' enter '/n' line break */class forfortest02 {public static void main(string [] args){for(int x = 0; x <9; x ++){for(int y = 0; y <= x; y ++){system.out.out( " *"); } system.out.println(); } system.out.println( "-------------------"); //データを使用するには、1から(int x = 1; x <= 9; x ++){for(int y = 1; y <= x; y ++){system.out.print(y+"*"+x+"="+y*x+"/t"); } system.out.println(); }}}ランニング効果:
6。ジャンプコントロールステートメント:
すでに言ったように、JavaのGotoは予約された言葉であり、現在使用することはできません。プログラムのセキュリティを強化するためのgotoの声明はありませんが、それはまた多くの不便をもたらします。たとえば、特定のループが特定のステップで知っているときに終了したいと思いますが、今はこれを行うことができません。この欠陥を補うために、Javaは休憩を提供し、継続し、声明のジャンプと割り込みを制御します。
割り込みを破壊します
続く
戻る
1。ジャンプコントロールステートメント(休憩):
休憩にシナリオを使用します:
〜構造を選択するためのスイッチステートメントで
〜ループステートメントで(ループステートメントに判断が追加された場合)
注:使用シナリオを離れることは意味がありません
休憩の機能:
A:単一層ループから抜け出します
B:多層ループから抜け出します
この効果を達成するには、何かを知っている必要があります。ラベル付きのステートメント。タグ名は、Javaネーミングルールに準拠する必要があります
形式:
タグ名:ステートメント
例コード:
/*コントロールジャンプステートメント:ブレーク:割り込み継続:続行:return:return Break:割り込み意味使用法シナリオ:A:スイッチステートメントB:ループステートメント。 (ループステートメントに判断が追加された場合)注:上記の2つのシーンを離れることは意味がありません。それを使用する方法は? A:単一層ループBから抜け出す:多層ループから抜け出して、この効果を達成するには、何かを知っている必要があります。ラベル付きのステートメント。フォーマット:タグ名:ステートメント */class breakdemo {public static void main(string [] args){//外部スイッチまたはループ// break; //(int x = 0; x <10; x ++){if(x == 3){break; } system.out.println( "helloworld"); } system.out.println( "over"); System.out.println( "-------------"); //多層ループWCをオフセット:for(int x = 0; x <3; x ++){nc:for(int y = 0; y <4; y ++){if(y == 2){// break nc; WCを破る; } system.out.print( "*"); } system.out.println(); }}}38行目では、WCと呼ばれる外部ループにタグを追加し、42行目でこのタグから飛び出します。
ランニング効果:
注:実際の開発では、ジャンプする多層ループの機能を使用することはほとんど不可能です。
2。ジャンプコントロールステートメント(続行):
継続するためにシナリオを使用してください:
使用シナリオをループステートメントに残す意味はありません
継続とブレイクの違い:
シングル層ループからブレークアウトループから脱出し続け、次の実行に入ります。
効果は次のとおりです。
インタビューの質問:
for(int x = 1; x <= 10; x ++){if(x%3 == 0){//ここでコードに記入} system.out.println( "Java Learning"); }上記のコードの4行目に記入して、次の条件を満たします。
コンソールに2回出力したい:「Java Learn」ブレイク。
コンソールに7回出力したい:「Java Learning」は続行します。
コンソールに13回出力したい:「Java Learning」System.out.println( "Java Learning");
3。ジャンプコントロールステートメント(返品)
リターンキーワードは、ループ本体から飛び出すことではありません。より一般的に使用される関数は、メソッド、つまりメソッドを終了し、上層で呼び出されるメソッドにジャンプすることです。
率直に言うと、リターンの機能はループを終了することではなく、メソッドを終了することです。
効果は次のとおりです。
ループステートメントのエクササイズとブレーク:
インタビューの質問:Xiaofangの母親は彼女に1日2.5元を与え、彼女はそれを保存します。しかし、この日が貯蓄の5日目または5人の倍数であるときはいつでも、彼女は6元を費やします。 Xiaofangは何日も100元に保存できます。
コード実装:
/*要件:Xiaofangの母親は1日2.5元を与え、彼女はそれを保存します。しかし、この日が貯蓄の5日目または5人の倍数であるときはいつでも、彼女は6元を費やします。 Xiaofangは何日も100元に保存できます。分析:A:Xiaofangの母親は、1日2.5元、Double Daymoney = 2.5を与えます。 B:彼女はdouble daysum = 0を節約します。 C:daycount = 1を初日から保存します。 D:Xiaofangは100元を節約します。二重結果= 100; E:この日が貯蓄の5日目または5人の倍数である場合、彼女は6元を費やし、デイカウントの価値を判断する必要があることを示します。 5が分割されている場合、6元が差し引かれます。 Daysum- = 6;これはまた、問題を意味します。つまり、5日間の倍数でない場合、お金はdayum += daymoneyを蓄積する必要があります。 F:それが何日かわからないので、私は死んだループを使用します。 100元を超えたら、ループを終了します。 */class whiledemo {public static void main(string [] args){//毎日保存されるお金は2.5元のダブルデイマネ= 2.5; //保存の初期化値は0 double dayum = 0です。 //ストレージint daycount = 1初日から。 //最終ストレージは100以上、int result = 100です。 //それが何日かわからないので、私は死んだループを使用します。 // 100元を超えたら、ループを終了します。 if(daysum> = result){system.out.println( "合計100元を保存するのに合計で100元を費やす");壊す; } if(daycount%5 == 0){// 6 yuan daysum - = 6を使う; System.out.println( "Things"+daycount+"合計で6元を費やす"); } //日数の変化DayCount ++; }}}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。