JAVA学習(四):Javaプロセス制御文(シーケンス構造、if条件文、switch条件文、ループ文、ジャンプ文)


Javaプロセス制御文
このブログでは、JAVAで構成されている様々な構造の制御文について重点的に紹介します.主な内容はC/C++のプロセス制御文と区別する重点的な解析です.
1、順序文
シーケンス構造の文は、式文、空文、複合文の3つのクラスに分けられます.
注意:
(1)、空の文は主に空の循環体として用いられ、その文法フォーマットは以下の通りである.
;	//        

空の文を実行します.制御を文の終了点に移動します.このように、空の文が到達可能であれば、空の文の終了点も到達可能である.
(2)、複合文は文ブロックとも呼ばれ、文ブロックが空であれば、文ブロックの終了点に制御する.
2、if条件文
Javaの条件文はC/C++と一致しており,大きな違いはない.
サンプルコード:
/********************************************************
 * "if    "    
 *   :     ,     
 */

import java.util.Scanner;
public class Program {
	public static void main(String [] args) {
		int num1,num2,num3,max;
		Scanner input = new Scanner(System.in);
		System.out.println("       :");
		num1=input.nextInt();
		System.out.println("       :");
		num2=input.nextInt();
		System.out.println("       :");
		num3=input.nextInt();
		max=num1;
		if(num2>max)
			max=num2;
		if (num3>max)
			max=num3;
		System.out.println("max="+max);
		input.close();
	}
}


3、switch条件文
if else文は、「2つの分岐点」を記述するために使用でき、switchは「複数の分岐点」の場合に使用できます.
Switch文はマルチブランチ選択文で、式の値に基づいて実行する文を選択するのによく使われます.基本的な構文形式は以下の通りです.
<pre name="code" class="java">switch (   )
{
case  1:
   1;
break;
case  2:
   2;
break;
case  3:
   3;
break;
……
case  n:
   n;
break;
}
 
  
 

其中,switch表示开关,case表示情况,default表示默认,break表示停止,它们都是JAVA的关键字。

/********************************************************
 * "switch      "——          */

import java.util.Scanner;
public class Program {
	public static void main(String [] args) {
		System.out.println("         ( 0123  1 23 ):");
		Scanner sc=new Scanner(System.in);
		int monthday=sc.nextInt();
		int month=monthday/100;
		int day=monthday%100;
		String xingzuo="";	//     
		switch (month) {
			case 1:
				xingzuo=day<21?"   ":"   ";
				break;
			case 2:
				xingzuo=day<20?"   ":"   ";
				break;
			case 3:
				xingzuo=day<21?"   ":"   ";
				break;
			case 4:
				xingzuo=day<21?"   ":"   ";
				break;
			case 5:
				xingzuo=day<22?"   ":"   ";
				break;
			case 6:
				xingzuo=day<22?"   ":"   ";
				break;
			case 7:
				xingzuo=day<23?"   ":"   ";
				break;
			case 8:
				xingzuo=day<24?"   ":"   ";
				break;
			case 9:
				xingzuo=day<24?"   ":"   ";
				break;
			case 10:
				xingzuo=day<24?"   ":"   ";
				break;
			case 11:
				xingzuo=day<23?"   ":"   ";
				break;
			case 12:
				xingzuo=day<22?"   ":"   ";
				break;
			default:
				break;
		}
		System.out.println("     "+xingzuo);
	}
}


4、循環文
JAVAで採用されているループ文はCのループ文と似ており、主にwhile/do-while/forとforeachがある.
4.1、while文
whileの構文形式は次のとおりです.
<pre name="code" class="java">while (   )
{
   ;
}
 
 

4.2、do-while语句

do-while语句会先执行循环体再判断条件表达式,其语法形式如下:

do {
   ;
}while(     );

注:先取り判断
4.3、for文
for文は、文ブロックが所定回数繰り返し実行するループに適しており、その構文構造は以下の通りである.
for(   1;   2;   3){
   ;
}

注意:for文は、式1または2または3が空の3つに分けられます.どの部分の式が欠けていても、プログラムの他の場所で補完することができ、forループ文の完全性を維持し、ループを正常に行うことができます.
4.4、foreach文
foreach文はfor文の特殊な簡略化バージョンであるが、foreach文はfor文に完全に取って代わることはできないが、foreach文はfor文バージョンに書き換えることができる.foreachはキーワードではなく、このような特殊なfor文をforeach文と呼ぶことに慣れていることに注意してください.
foreach文は配列、集合を遍歴する上で、開発者に極めて便利であり、その文法フォーマットは以下の通りである.
for(      :  ){
   ;
}
サンプルコード
/********************************************************
 * "foreach    "        */

public class Program {
	public static void main(String [] args) {
		String[] fruits = {"  ","  ","  ","  ","  ","  "};
		System.out.println("      :");
		for(String fruit:fruits){
			System.out.println(fruit+"、");
		}
	}
}

4.5、実戦——九九乗法口诀表
コードの例は次のとおりです.
/*
 * "  ——       "*/

public class Program {
	public static void main(String [] args) {
		System.out.println("       :");
		for (int i=1;i<=9;i++){
			for(int j=1;j<=i;j++){
				System.out.print(j+"*"+i+"="+j*i+"\t");	
			}
//			  print println   
			System.out.print("
"); // System.out.println(); } } }

5、ジャンプ文
厳密には、ジャンプ文はプロセス制御文ではありませんが、プログラマがデッドサイクルに遭遇したときにジャンプ構造を使用してサイクルを終了するなど、プロセス全体をより正確に制御するのに役立ちます.
JAVAは、return、break、continueなど、他の言語と同じジャンプ構造制御文を提供します.
5.1、「return文、break文、continue文」の違いと関連
return文は、プログラムの実行または終了メソッドを終了し、そのメソッドの呼び出し者に制御権を返すために使用されます.このメソッドに戻りタイプがある場合は、return文はこのタイプの値を返さなければなりません.ない場合は、式のないreturn文を使用できます.
break文は、ループ文または条件文で使用され、ループ文を終了し、制御プロセスがループ文の次の文にジャンプします.
continue文は、現在のループを終了して次のループを実行することを示し、ループ文とswitch文に適用されます.breakとの違いは、break文はループ文全体を終了し、continue文は現在のループのみを終了し、次のループを実行し続けることです.
/********************************************************
 * "break         "
 *   :        ,    100     */

import java.util.Scanner;
public class Program {
	public static void main(String [] args) 
	{
		int sum=0,num=0;
		for(;;)
		{
			System.out.println("       :");
			Scanner sc =new Scanner(System.in);
			num=sc.nextInt();
			sum+=num;
			if(sum>100)
				break;
		}
		System.out.println("sum="+sum);
	}
}


/*
 * "continue  "       
 *   :            ,           */

public class Program
{
	public static void main(String [] args) 
	{
		String[] users ={"AAA","BBB","CCC","DDD","EEE"};
		System.out.println("    :");
		for(String user:users)
		{
			if(user=="CCC")
				continue;
			System.out.print(user+"、");
		}
	}
}

5.2、実戦——breakはgoto機能を実現
break文はgotoの機能を実現することができ、javaはbreak文の拡張形式を定義し、ネストされた深いループを終了するという問題を処理する.同時に、この拡張break文にはラベルが付いており、実行がどこから再開されるかを明確に指定できます.ラベルbreak文の一般的なフォーマットは次のとおりです.
break label;
/*
 * "  "——break  goto  */
public class Program
{
	public static void main(String [] args) 
	{
		int i;		
outer:	for(i=0;i<10;i++)
		{	
			if(i<7)
			{
				System.out.println("  Goto  ");
				continue outer;
			}
			if(i==5 || i==8)
			{
				System.out.println("x=8");
				break outer;
			}
		}
	}
}