ホームページ >Java >&#&チュートリアル >Java -- プログラム フロー制御

Java -- プログラム フロー制御

零下一度
零下一度オリジナル
2017-06-25 10:56:291502ブラウズ

Java プログラムのフロー制御 (その 1)

Java プログラムは、一般に、シーケンシャル構造、分岐構造、ループ構造の 3 つの処理制御構造に分かれます

  • シーケンシャル構造

プログラムは上から順番に並んでいます間にジャンプや判定ステートメントを含まない行の実行。

サンプルコードは以下の通りです:

 1 public class TestSortStruc { 2     public static void main(String[] args) { 3         //流程控制:顺序结构 4         int i = 15; 5         int j = i + 1; 6         System.out.println(j); 7          8         /*错误示例,因为n的赋值语句使用到了m,所以不能将m在n后面定义 9          * int n = m + 1;10            int m = 10;11            System.out.println(n);*/12     }13 }

  • 分岐構造

条件に基づいて特定のコードブロックを選択的に実行します。

分岐文はif...elseとswitch...caseの2種類に分かれます。

1. if文の3つの構造:

1. if(true){

実行コードブロック;}

サンプルコードは以下の通りです。

りー

2. if(条件判定文)

{

コードブロックを実行;}

else{

コードブロックを実行;}

サンプルコードは次のとおりです以下:

1 public class TestIf1 {2     public static void main(String[] args) {3         if(true){4             System.out.println("Hello World!!");5         }6     }7 }

3. if (条件判定文) {

実行コードブロック;}

else if (条件判定文) {

コードブロックを実行; }

......

else{コードブロックを実行;}

 1 public class TestIf2 { 2     public static void main(String[] args) { 3         int age = 21; 4         if(age>18){ 5             System.out.println("你已经成年了!!"); 6         }else{ 7             System.out.println("你还没有成年!!"); 8         } 9     }10 }
キーボードから値を取得し、生徒の得点を判定するための if 判定ステートメントは、Scanner オブジェクトを使用し、ユーザーがコンソールに値を入力できるようにします

サンプルコードは次のとおりです:

 1 public class TestIf3{ 2     public static void main(String[] args) { 3         int age = 26; 4         
 5         if(age > 130 || age < 0){ 6             System.out.println("估计不是人吧!!"); 7         }else if(age <30){ 8             System.out.println("你还挺年轻!!只有"+ age +"岁"); 9         }else{10             System.out.println("我都是孩子他爹了,你另找心上人吧!!");11         }12     }13 }

注: 1. If 条件判定は入れ子にすることができます。

2. 1) 複数の条件の間に「相互排他的」な関係がある場合、条件文の順序は自由です。

2) 「包含的」な関係がある場合。複数の条件の間にある場合、より小さい範囲の条件を上記のより大きな範囲の条件に記述する必要があります。

2. switch...case ステートメント:

switch(expression){

Case 定数 1:

発言1;

break;

case constant 2:

Statement 2;

Break;

格定数n:

Statement n;

Statement;

break;

}

の値に基づく式で、対応するケースを選択して判断します。ケースの条件が満たされると、対応するケースのステートメントが実行されます。

switch後の括弧内の式の値のデータ型は、char、byte、short、int、enumeration、String(String型はJDK1.7以降のみ使用可能)です。

caseの後に続く定数は、値の範囲ではなく、正確な値のみにすることができます。

サンプルコードは以下の通りです:

 1 /*题目: 2  * 从键盘输入自己的考试成绩 3  * 当成绩为100分时,奖励一台外星人电脑 4  * 当成绩在80~99时,奖励一部iPhone7 plus 5  * 当成绩在60~80时,奖励一本考试科目的习题册 6  * 成绩低于60时,没有奖励,需要连续三个月不许玩游戏看电视。*/ 7 //1.导入Scanner包,记住一定要是java.util下的Scanner包 8 import java.util.Scanner; 9 10 public class TestScanner {11     public static void main(String[] args) {12         //2.new 一个Scanner对象sc13         Scanner sc = new Scanner(System.in);14         /*3.从键盘获取用户输入的值,因为要判断成绩,15             所以规定输入的值是int类型的数字,使用nextInt()方法*/16         System.out.println("请输入你的成绩:");17         int grade = sc.nextInt();18         //使用if判断语句进行成绩奖励判断19         if(grade == 100){20             System.out.println("恭喜你,获得一台外星人电脑!!");21         }else if(grade < 100 && grade >= 80){22             System.out.println("恭喜你,获得一部iPhone7 plus!!");23         }else if(grade < 80 && grade >=60 ){24             System.out.println("恭喜你,你需要完成一本本学科的习题册!!");25         }else{26             System.out.println("很遗憾,你在未来的三个月不能玩游戏,看电视!!");27         }28     }29 }

注: ブレークがない場合、または終了に達した場合、特定の値のみを取得したい場合は、break キーワードを追加する必要があります。デフォルトは end ステートメントです。スイッチ内に記述できます。ケースの前後に書き込むことはできませんが、デフォルトは最後に置く必要があります。

  • ループ構造

ループ条件を通じて、条件が満たされなくなるまで、特定のコードブロックが繰り返し実行されます。

while、do..while、forループの3種類のループ文に分かれています。

注: foreach ループは JDK1.5 で提供されており、コレクションや配列要素の利便性が向上しています。

ループ構造は最も一般的に使用され、重要であるため、(パート 2) の記事で別途整理します。

以上がJava -- プログラム フロー制御の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。