Javaにおけるループの理解


年後、Javaプログラミングを学んでいる間、Javaでループを学習していた.ループは時々、イライラすることができますし、学ぶのは難しい、特にあなたの学習のための適切なリソースを取得しない場合は特に.
本稿では、最も簡単で包括的な方法で、Javaのループを説明し、用語を理解しやすく、最後に、forループを使用して簡単なプロジェクトを構築します.
要件
  • Java変数宣言の理解.
  • Java式の理解
  • Because of the need to explain java loops comprehensively, this article will be divided into three.

    1. For loop
    2. While loop
    3. Do while loop. each will have a different article.

    ループの概念
    ループは、コンピュータサイエンスの分野で幅広い現象です.基本的に、すべての機能するプログラミング言語はループをサポートしています.ループは、単に何かを繰り返し行うことを意味します.プログラミングの観点から、ループは、いくつかの条件に基づいて繰り返し命令を実行することを意味します.これらの条件は、ループが無限になるのを防ぐものです.すべてのループの有用性は、冗長なフリーコードを記述し、コードを理解しやすいようになります.
    あなたがコンソールで10回、「こんにちは、ジョン」を印刷するよう頼まれるならば、ちょっと考えてください、あなたはどのように、それをしますか?
    あなたが使用する基本的に1つのオプションがあります、あなたは間違いなく“こんにちは、ジョン”を10までまでカウントを書き直そうとしている
    例えば、
    public class Main {
        public static void main(String[] args) {
        System.out.println("Hello, John");
        System.out.println("Hello, John");
        System.out.println("Hello, John");
        System.out.println("Hello, John");
        System.out.println("Hello, John");        System.out.println("Hello, John");
        System.out.println("Hello, John");     System.out.println("Hello, John");     System.out.println("Hello, John");
        System.out.println("Hello, John");
        }
    }
    
    このメソッドは予想される出力になるかもしれませんが、したがって、それは非効率であるとみなされました!プログラミングでは、自分自身を繰り返す必要はありません、上記のコードの行は非専門的に見えます.しかし、同じ結果をまったく別の方法で、より効率的でより少ないコード行で印刷できます.
    例えば、
    import java.util.*;
    public class Main{
        public static void main(String[] args) {
            for(int i = 0; i<=10; i++){
                System.out.println("Hello, John");
            }  
        }
    }
    
    あなたは、ループを使用すると、より良い結果をコードの少ない行を書くことができますし、デバッグの時代に役立つことができるとの違いを見ることができます.
    ジャバループ
    Javaのループはさらに3つに分割されます.
  • ループ用
  • 一方ループ
  • ……whileループ.
  • ループ用
    forループは、条件が満たされるまでステートメントを繰り返すために使用されます.これは、カウンタ/インデックスを使用して、常にループを実行するたびにステートメントの最後にインクリメントまたはデクリメントされます.このインデックスまたはカウンタの本質は、条件を満たすことです.
    ループのJavaの基本的な構文は以下の通りです.
    for(initialization; test; increment){
    //Some statements
    }
    
    LOOPHERNの各パラメータを理解できます
    初期化:初期化はすべてのforループの最初のステージです、そして、それはどんなループの出発点を示します.これは通常、カウンタやイテレータまたはインデックスと呼ばれます.ループのステートメントが実行されると、カウンタはインクリメントされます.
    配列内の各要素を反復処理している場合、カウンタは0になります.これは0のインデックスから配列が開始されるためです.
    Test :これはブール式であり、返り値がループを終了するか、文の実行を継続するための決定子であるということです.falseの場合、ループが終了し、trueの場合、ループは実行を続け、falseを返します.
    例えば
    ループがステートメントを5回実行するのを確実にするために、カウンタが5に等しいとき、それが終了されるべきであることを保証するために、カウンタをチェックしなければなりません.
    i < = 5
    
    一旦カウンタが5に等しいならば、ループは終わります.
    インクリメント:これはテストリターン値の基礎です.forループの終わりを呼び出していることを意味する式です.
    i++ or i--
    
    カウンタがインクリメントされます.
    ここで、forループの流れを説明する.最初のステージは初期化で、カウンタ変数は宣言され初期化されます.第2段階では、ループをチェックし、真を返した場合は、forループ内の文を実行し、iをインクリメントして、ループを再度実行します.
    例を挙げましょう
    あなたは私たちの“ハロー、ジョン”プログラムを覚えていますか?
    説明のために「こんにちは、ジョン」をforループで印刷してみましょう.こんにちは、ジョンは10回印刷されることになっています.
    import java.util.*;
    public class Main {
        public static void main(String[] args) {
            for(int i = 1; i<=10; i++){
                System.out.println("Hello, John");
            }  
        }   
    }
    
    最初のiは1に初期化されます.
    2番目のiは10以下であるかどうかをチェックしますi is 1 , したがって、条件はtrueを返します
    第三に、「こんにちは、ジョン」は、コンソールで一度印刷されます
    第四に、私はインクリメントされ、私は今2です
    ループは再び実行され、今私は2です.
    2番目のiは10以下であるかどうかをチェックしますi is 2 , したがって、条件はtrueを返します
    第三に、「こんにちは、ジョン」は、コンソールで2回印刷されます
    第四に、私はインクリメントされ、私は今3です
    私が10になった時点で、私が10になったときに条件がチェックされ、現在はIが10となり、テストがfalseの値を返します.
    ループのためのbreak文
    一旦break文がループ内で呼ばれると、ループは強制的に終了します.通常、ループは、もはや条件が返されなくなると停止します.しかし、時々、特定の条件が満たされたとき、我々はforループから壊れたいです.
    for(int i = 1; i<=20; i+=2){
    System.out.println(i);
    If(i == 20){
    break;
    }
    }
    
    上記のプログラムでは、2と20の間の偶数を印刷しようとしていますが、12時に停止したいと思います.if文は、iが12に等しいかどうかを調べます.もし真ならば、プログラムは他の反復を残します.
    ループをJavaで継続する文
    場合によっては、強制的にforループから抜け出すことがあるかもしれませんが、別の時点では全く別のものを必要とする場合は、おそらくイテレータをスキップし、残りの部分を続行する必要があります、これはcontinue 文.
    私たちのプログラムに戻ってくるが、今回は、偶数12をスキップしたいと思います.
    for (int i = 2 ; i<=20 ; i+=2)
            {
                if(i == 12){
                    continue;
                }
           System.out.println(i);
        }
    
    ループが12になると、それはその特定の反復をスキップし、残りのインターレースを続行します.
    ループはデクリメントできます
    この記事の冒頭から、我々はカウンタをインクリメントされている、カウンタはまた、デクリメント演算子を使用してデクリメントできます.デクリメント演算子を使用すると、カウンタの初期化と条件の両方の変更が必要です.
    for ( int i = 20 ; i >=1  ; i--)
            {        
                System.out.println(i);
            }
    
    上のプログラムでは、我々は20から1までカウントしようとしているので、我々はi-- 演算子
    ループは入れ子にできます
    forループは別のループ内で反復することができます.forループを別のループ内に配置すると、入れ子になったループを直接作成できます.ループの入れ子になった場合、内部ループは次の外側ループに移動する前に反復サイクルを完了しなければなりません.
    入れ子になったループの形式
    //Outer Loop
    for ( initialization; test ; increment)
            {
     //Inner Loop
    for(initialization; test; increment){
                    //Some statements
               }
           } 
    
    例にあげる
    for(int i = 1; i<= 5; i++)
        {
          //inner loop
          for(int j = 1; j <= i; j++)
          {
            System.out.print( "* " );
          }
          System.out.println(); 
    
    出力
    *
    * *
    * * *
    * * * *
    * * * * *
    
    ループのためのJavaにおけるスコーピング
    この記事を通して、forループループの間のカウンタ変数を宣言して初期化して、それをローカル変数にします.時には我々はカウンタ値の値にアクセスする必要があるプログラムを書くかもしれない、このメソッドは動作しない場合があります.
    例えば
    次のコードを実行しようとするとエラーが発生します
    for ( int i = 1 ; i <=20  ; i++)
            {
    
            }
         System.out.println(i);
    
    エラー:
    Error: i cannot be resolved to a variable
    
    このエラーの意味は変数int i = 1 forループのスコープから表示できません.しかし、このコードを実行するには、確実にint i forループのスコープ外です.
      int i;
      for ( i = 1 ; i <20  ; i++)
            {
    
            }
         System.out.println(i);
    
    今、私はループのスコープの外から値を見ることができます.
    出力:
    20
    
    無限ループ
    ループの無限ループは、常に条件を返すことができます.
    例えば
    for ( int i = 1 ;  ; i++ )
            {
         System.out.println( i );
            }
    
    上記のコードでは、条件文は決してfalseを返しませんint i = 1 ループを停止させるまで、コンパイラを終了させるか、コンピュータを再起動させるまで、😁.
    しかし、時には無限ループの条件を設定することができます.
    for ( int i = 1 ;  ; i++ )
            {
         System.out.println( i );
         if(i == 12){
         break;
         }
      }
    
    上記のプログラムでは、実行時に状態をチェックしようとするので、ループがi = 12 ループが終了します.
    ループのギャング
    時々、より複雑なプログラムに取り組んでいるかもしれません、そして、複数の初期化と増加をする必要があります.
    int i, j;
            for ( i = 0, j=10; i<=j; i++, j--)
            {
                System.out.println("i "+i+":"+"j "+j);
            }
    
    この種のプログラムを実行する必要があるときは、複数の初期化とインクリメントをコンマで区切ってください.
    プロジェクトタイム
    この記事の冒頭では、Javaのループを使用してプロジェクトを構築する予定です.

    The project we are going to build using the Java for loop is a guessing game, in this guessing the user will be given 10 trial the to guess the right number between 1 and 10, if the user guess it correct A congratulations message will be printed on the console. We will be using the Java for loop to iterate the 10 time the user is meant to Guess.
    .


    コードスニペット.
    import java.util.*;
    
    public class Main
    {
        //scanner class for accepting inputs
        static Scanner input;
        /*variable declaration for the number of times
        the user has guess, the second variable is the 
        variable declaration that will hold the random number
        value
        */
        static int count, randomNumber;
        //a boolean to check if the user has won
        static boolean hasWon;
        public static void main ( String[] args )
        {
            input = new Scanner( System.in );
            //Asking the user if he is ready to play the game
            System.out.println( "Do you want to begin the game?\n" +
                               "1. Yes\n" +
                               "2. No" );
            //variable for collecting the user response
            int option = input.nextInt( );
            //validatinf if the use choosed 1
            if ( option == 1 )
            {
                //if the use choosed one, then we begin the game
                System.out.println( "Welcome to guess world\n" +
                                   "You have only 10 trials go guess the right number" );
                //processing the random number value
                randomNumber = (int)Math.floor(Math.random()*10+1);
                //Asking the user to Guess a number between 1 and 10
                System.out.println("Guess a number from 1 - 10");
    
                //Looping through from 1 - 10
                for(int i = 1; i<=10; i++){
                    //At each iteration the user is asked to input a guess
                    int userGuesses = input.nextInt();
                    //If the guess is correct
                    if(userGuesses == randomNumber){
                        //haswon is set to true
                        hasWon=true;
                        System.out.println("Congratulation, you guessed the right number at count: "+count);
                    //If guess is greater than the random number
                    }else if(userGuesses>randomNumber){
                        System.out.println("Oops! Try a lesser number");
                        //haswon is set to false
                        hasWon = false;
                    //If guess is lesser than the random number
                    }else if(userGuesses<randomNumber){
                        System.out.println("Oops! Try a greater number");
                        //has won is set to false
                        hasWon = false;
                    }
                    //At the end of each count, the count variable is incremented
                    count++;
    
                }
                //check if haswon is false
                if(hasWon == false){
                    System.out.println("Trial exceed 10, the guess is "+randomNumber);
                }
    
           //if the user chooses 2, then the game is going to be exited
            }else{
                System.out.println("Guess game exiting...");
            }
    
        }
    
    }
    
    
    結論
    ループはすべてのプログラミング言語で重要な機能ですが、ループの重要性は、常に事前のプログラムを構築しながらそれを使用する必要があります.今のところ、ループ用のJavaをどのように使うか、それを操作するかの簡単な具体的な理解が必要です.