AVA-4:制御文
4.制御文
4.1. 条件文
4.1.1 if~else文
if~else文は、関係演算子または論理演算子を用いてboolean結果値を返す条件式に基づいて実行フローを変更する.以下の形式は,最も基本的なif~else文を用いた条件文である.if ( 조건식 ) {
// 조건이 true 이면 실행
} else {
// 조건이 false 이면 실행
}
これらの条件の結果、実行されるコードブロックは異なり、他のコードブロックは実行されません.
なお、以下の条件で区分してもよい.if ( 조건식 1 ) {
// 조건식 1 이 true 이면 실행
} else if ( 조건식 2 ) {
// 조건식 1 이 false 이고 조건식 2 가 true 이면 실행
} else {
// 조건식 1 과 조건식 2 모두 false 이면 실행
}
ここで分かる点は、条件式を上から順にチェックし、現在の条件式が偽である場合にのみ次の条件式に移動し、現在の条件式が真である場合、コードブロックはif~els文を実行して終了することである.
if~else文をこのように重ねることもできます.if( 조건식 1 ) {
if ( 조건식 2 ) {
// 조건식 1 과 조건식 2 가 true 이면 실행
} else {
// 조건식 1 은 true 이고 조건식 2 가 false 이면 실행
}
} else {
// 조건식 1 이 false 이면 실행
}
4.1.2 swtich文
switch文も条件文であり、主に入力された整数値、ENUMまたは文字列が予め設定された複数の値と一致するか否かを判断するために用いられる.これは上のif~else文で表すことができるが,switch文を用いるのが適切である.
以下if~else文で表す.int num = 5;
int ret;
if (num == 0) ret = num;
else if (num == 1) ret = num;
else if (num == 3) ret = num;
else if (num == 5) ret = num;
else if (num == 7) ret = num;
else ret = num;
System.out.println(ret);입력하세요
次はswitchで同じ条件文を表します.int num = 5;
int ret;
switch (num) {
case 0: ret = num; break;
case 1: ret = num; break;
case 3: ret = num; break;
case 5: ret = num; break;
case 7: ret = num; break;
default: ret = num; break;
}
System.out.println(ret);
上記の2つの条件文は同じ機能を提供していますが、動作には大きな違いがあります.
まず、ifelse文は、パフォーマンスの場合、各条件式を順次チェックし、制御フローを決定します.すなわち,N個の条件式があれば,N個の真偽を判断する.
ただし、switch文はifelse文とは異なり、JVMはswitch文のcase値の分布に基づいて内部で状況ごとに2つの最適化されたバイトコードを生成する.また、Lookup TableなどのLookupSwitchやTable Switchを使用すると、ifelse文ごとの最後の条件式は、前のすべての条件式とは異なり、場合によって同じアクセス時間が保証されます.
if ( 조건식 ) {
// 조건이 true 이면 실행
} else {
// 조건이 false 이면 실행
}
if ( 조건식 1 ) {
// 조건식 1 이 true 이면 실행
} else if ( 조건식 2 ) {
// 조건식 1 이 false 이고 조건식 2 가 true 이면 실행
} else {
// 조건식 1 과 조건식 2 모두 false 이면 실행
}
if( 조건식 1 ) {
if ( 조건식 2 ) {
// 조건식 1 과 조건식 2 가 true 이면 실행
} else {
// 조건식 1 은 true 이고 조건식 2 가 false 이면 실행
}
} else {
// 조건식 1 이 false 이면 실행
}
int num = 5;
int ret;
if (num == 0) ret = num;
else if (num == 1) ret = num;
else if (num == 3) ret = num;
else if (num == 5) ret = num;
else if (num == 7) ret = num;
else ret = num;
System.out.println(ret);입력하세요
int num = 5;
int ret;
switch (num) {
case 0: ret = num; break;
case 1: ret = num; break;
case 3: ret = num; break;
case 5: ret = num; break;
case 7: ret = num; break;
default: ret = num; break;
}
System.out.println(ret);
4.2. 複文
繰り返し文とは
4.2.1而文
while( 조건식 ) {
// 조건식이 참이면 실행
}
ドアは次の手順で操作されます.4.2.2 for文
for ( 초기화식 ; 조건식 ; 증감식 ) {
// 조건식이 참이면 실행
}
for文は次の順序で操作されます.条件式の変数の初期化
for (int i = 1 ; i < 11 ; i++){
System.out.println(i); //i 출력
}
4.2.3 do~while文
do~while文はwhile文とは異なり,条件式の真偽に関係なく無条件に1回実行する構造である.
do {
// 실행
} while ( 조건식 );
実行手順は以下のとおりです.4.2.4ドアごと
各文について、この名前は他の言語で主に使用され、強化されています.したがって,foreachは単独で存在するキーワードではなく,同じforを用いる.
for ( 변수타입 변수 : 컬렉션 또는 배열 ) {
// 코드
}
以下のように使用できます.ArrayList<String> numbers = new ArrayList<String>();
numbers.add("one");
numbers.add("two");
for (String number : numbers) {
System.out.println(number);
}
Reference
この問題について(AVA-4:制御文), 我々は、より多くの情報をここで見つけました https://velog.io/@shlee7131/JAVA-4-제어문テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol