1. 선택문
1.1 조건문
- 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문
1.2 조건문 종류
- if문
- if / else 문
- if / else if / else 문
- switch 문
1.3 if 문
- 조건식의 결과가 참(true) 이면 주어진 명령 실행, 거짓(false)이면 아무것도 실행하지 않는다.
1.3.1 if문 문법
if( 조건식 )
{
조건식의 결과가 참(true)일때 실행 명령문
}
1.3.2 if 문 예제
if ( ch >= "a" && ch <= "z" )
{
System.out.println("해당 문자는 영문 소문자입니다.");
}
1.4 if / else 문
- if문과 함께 사용하는 else문은 if문의 반대로 주어진 조건의 결과가 거짓( false )이면 명령문을 실행함.
1.4.1 if / else 문 문법
if (조건식) {
조건식의 결과가 참일 때 실행하고자 하는 명령문;
} else {
조건식의 결과가 거짓일 때 실행하고자 하는 명령문;
}
1.4.1 if / else 문 예제
if ( ch >= "a" && ch <= "z" )
{
System.out.println("해당 문자는 영문 소문자입니다.");
}
else
{
System.out.println("해당 문자는 영문 소문자가 아닙니다.");
}
1.5 if / else if / else 문
- 조건식을 여러 개 명시할 수 있으므로 중첩된 if문을 좀 더 간결하게 표현할 수 있다.
1.5.1 if / else if / else 문법
if ( 조건식1 )
{
조건식1의 결과가 참일 때 실행
}
else if ( 조건식 2 )
{
조건식2의 결과가 참일 때 실행
}
else
{
조건식1의 결과도 거짓, 조건식2의 결과도 거짓일 경우 실행
}
1.5.2 if / else if / else 문 예제
package com.basic.study.sample;
import java.util.Scanner;
class Tax
{
private int income; // 과세
Tax( int income )
{
this.income = income;
}
public int calculationTax ()
{
int tax = 0; // 세금
if ( income <= 1000 )
{
tax = (int) ( 0.09 * income );
}
else if ( income <= 4000 )
{
tax = (int)( 1000 * 0.09 + 0.18 * ( income - 1000 ) );
}
else if ( income < 8000 )
{
tax = (int)( 1000 * 0.09 + 3000 * 0.18 + 0.27 * ( income - 4000 ) );
}
else
{
tax = (int)( 1000 * 0.09 + 3000 * 0.18 + 4000 * 0.27 + 0.36 );
}
return tax;
}
}
public class SelectionStatement
{
public static void main(String[] ares)
{
Scanner sc = new Scanner(System.in);
System.out.print("과세 표준 금액을 입력하세요 : ");
Tax taxObj = new Tax( sc.nextInt() );
System.out.println( "소득세는 " + taxObj.calculationTax() + "입니다." );
}
}
1.6 삼항 연산자에 의한 조건문
- JAVA에서 if / else 문을 좀 더 간결하게 표현하기 위한 명령문
1.6.1 삼항 연산자 문법
조건식 ? 반환값1(true) : 반환값2(false)
1.6.2 삼항 연산자 예제
- 근로 소득세를 계산하고 과세를 판별하는 프로그램을 작성해보자
package com.basic.study.sample;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
class Tax
{
private int income; // 과세
Tax( int income )
{
this.income = income;
}
public int calculationTax ()
{
int tax = 0;
if ( income <= 1000 )
{
tax = (int) ( 0.09 * income );
}
else if ( income <= 4000 )
{
tax = (int)( 1000 * 0.09 + 0.18 * ( income - 1000 ) );
}
else if ( income < 8000 )
{
tax = (int)( 1000 * 0.09 + 3000 * 0.18 + 0.27 * ( income - 4000 ) );
}
else
{
tax = (int)( 1000 * 0.09 + 3000 * 0.18 + 4000 * 0.27 + 0.36 );
}
return tax;
}
}
class AdditionalTax
{
SimpleDateFormat formatDt = new SimpleDateFormat("yyyyMMdd");
public String getCurrentDate()
{
return formatDt.format( System.currentTimeMillis() );
}
public String checkAdditionalTax() throws ParseException
{
Date standardDt = formatDt.parse( getCurrentDate().substring( 0 , 4 ) + "0531" );
Date currentDt = formatDt.parse( getCurrentDate() );
int compare = standardDt.compareTo( currentDt );
return compare > 0 ? "false" : "true";
}
}
public class SelectionStatement
{
public static void main(String[] ares) throws ParseException
{
Scanner sc = new Scanner(System.in);
AdditionalTax additionalTax = new AdditionalTax();
String checkTax = additionalTax.checkAdditionalTax().equals("true") ? "과세 대상 입니다." : "과세 대상이 아닙니다.";
System.out.print("과세 표준 금액을 입력하세요 : ");
Tax taxObj = new Tax( sc.nextInt() );
System.out.println( "소득세는 " + taxObj.calculationTax() + "입니다." );
System.out.println( "고객님께서는 " + checkTax );
}
}
1.7 switch 문
- 주어진 조건 값의 결과에 따라 프로그램이 다른 명령을 수행하는 조건문이다.
1.7.1 switch 문 문법
switch ( 식 ) // byte , short , char , int 등의 자료형 데이터가 들어감
{
case 값1 :
명령문들
break;
case 값2 :
명령문들
break;
default :
명령문들
break;
}
1.7.2 switch 문 예제
class InputMultiple
{
public void checkJuminNumberSevenDigit( int num )
{
String gender = num % 2 == 0 ? "여자" : "남자";
switch ( num )
{
case 9 : case 0 : System.out.println( "\t 당신은 " + 1800 + " 년대 " + gender + " 입니다." ); break;
case 1 : case 2 : System.out.println( "\t 당신은 " + 1900 + " 년대 " + gender + " 입니다." ); break;
case 3 : case 4 : System.out.println( "\t 당신은 " + 2000 + " 년대 " + gender + " 입니다." ); break;
default: System.out.println("주민번호 7번째 자리를 잘못 입력하셨습니다.");
}
}
}
public class SelectionStatement
{
public static void main(String[] ares) throws ParseException
{
InputMultiple inputMulti = new InputMultiple();
Scanner sc = new Scanner( System.in );
System.out.print("당신의 주민번호 7번째 자리를 입력해주세요 : ");
inputMulti.checkJuminNumberSevenDigit( sc.nextInt() );
}
}
2. 반복문
2.1 반복문
- 똑같은 명령을 일정 횟수만큼 반복하여 수행
2.2 반복문 종류
- for 문
- while 문
- do / while 문
- Enhanced for 문
2.3 for 문
- 초기식, 조건식, 증감식을 모두 포함하는 반복문
2.3.1 for 문 문법
for (초기식; 조건식; 증감식)
{
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}
2.3.2 for 문 예제
package com.basic.study.sample;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RepetitiveStatement
{
public static void main(String[] args) throws IOException
{
BufferedReader in = new BufferedReader ( new InputStreamReader( System.in ) );
int tot = 0;
System.out.print( "First number : " );
int sub1 = Integer.parseInt( in.readLine() );
System.out.print( "Second number : " );
int sub2 = Integer.parseInt( in.readLine() );
System.out.print( "Multiple number : " );
int n = Integer.parseInt( in.readLine() );
if ( sub1 > sub2 )
{
int temp = sub1;
sub1 = sub2;
sub2 = temp;
}
for ( int i = sub1; i <= sub2; i++ )
{
if ( i % n == 0 )
{
tot += i;
}
}
System.out.println();
System.out.print( sub1 + "에서" + sub2 + "사이의" );
System.out.println( n + "배수의 합은" + tot + "입니다" );
}
}
2.4 while문
- 행위에 의한 반복문을 작성할 수 있다.
2.4.1 while문 문법
while (조건식)
{
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}
2.4.2 while문 예제
public class RepetitiveStatement
{
public static void main(String[] args) throws IOException
{
Scanner sc = new Scanner(System.in);
boolean stop = false;
while (!stop)
{
System.out.println("2개의 정수 입력");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int num = num1 % num2; // 나머지 구하는 공식
System.out.println(num1 + " % " + num2 + " = " + num);
System.out.println("계속 Y, 종료 N 입력");
String yn = sc.next();
// Y 또는 y 입력시 반복
if (yn.equals("Y") || yn.equals("y"))
{
System.out.println("---------------------");
continue;
}
// N 또는 n 입력시 종료
if (yn.equals("N") || yn.equals("n"))
{
break;
}
}
System.out.println("시스템이 종료되었습니다.");
}
}
2.5 do ~ while문
- wihle문은 조건부터 검사하지만 do ~ while문은 루프를 무조건 한번 실행 후 조건을 검사한다.
2.5.1 do ~ while문 문법
do {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
} while (조건식);
2.5.2 do ~ while문 예제
public class RepetitiveStatement
{
public static void main(String[] args) throws IOException
{
int i = 1, j = 1;
while ( i < 1 ) {
System.out.println("while 문이 " + i + "번째 반복 실행중입니다.");
i++; // 이 부분을 삭제하면 무한 루프에 빠지게 됨.
}
System.out.println("while 문이 종료된 후 변수 i의 값은 " + i + "입니다.");
do {
System.out.println("do / while 문이 " + i + "번째 반복 실행중입니다.");
j++; // 이 부분을 삭제하면 무한 루프에 빠지게 됨.
} while ( j < 1 );
System.out.println("do / while 문이 종료된 후 변수 j의 값은 " + j + "입니다.");
}
}
'Java Live Study with keesunBaik' 카테고리의 다른 글
[step-6] Java - Extends (0) | 2020.12.25 |
---|---|
[step-2] Java Live Study with keesunBaik (0) | 2020.12.20 |
[step-5] Java Live Study with keesunBaik (0) | 2020.12.15 |