자바의정석

기본기_자바의 정석_Ch04_조건문

Stater 2020. 10. 3. 09:04

조건문 if

- 만일(if) 조건식이 참(true)이면 괄호 {} 안의 문장들을 수행

if(score>70){
    System.out.println("합격");
}else{
    System.out.println("불합격");
}

조건식의 종류

조건식 조건식이 참일 조건
90 <=x && x<=100 정수X가 90이상 100이하 일 때
x < 0 || x > 100 정수 X가 0보다 작거나 100보다 클 때
x%3==0 && x%2!=0 정수 X가 3의 배수지만,2의 배수는 아닐 때
ch=='y' || ch=='Y' 문자 ch가 'y' 또는 'Y' 일 때
str.equals("yes") 문자열 str의 내용이 "yes"일 때 (대소문자 구분)
str.equalsIgnoreCase("yes") 문자열 str의 내용이 "yes"일 때 ( 대소문자 구분 안함)
   
   
   

 

조건이 3건 이상 일경우

- if(조건식){ }

 else if(조건식2){ 조건식 2가 연산결과가 참일 때 수행 될 문장을 적는다.}

 else if(조건식3){ 조건식 3의 연산결과가 참일 때 수행 될 문장을 적는다.}

 else { 위의 어느 조건식도 맞지 않을 경우 실행}

 

중첩 if문

-사용시에 블럭 부분의 잘못 표기할 경우 다른 문장이 실행 될 수 있으므로 사용시에 먼저 큰 그림을 그려놓고 

사용하는 방법이 중요하다. 그래야 실수를 방지 할 수 있다.

- if(조건식1) {

 //조건식의 연산결과가 true일 경우 수행될 문장

if(조건식2){

 //조건식1과 조건식2가 모두 true일 때 수행될 문장

}else{

 //조건식1이 true 이고, 조건식2가 false 일때 수행될 문장

}

}else{

//조건식 1이 false일때 수행될 문장

}

 

switch문

- 처리할 경우의 수가 많은 경우에는 if문보다는 switch 작성을 추천

- 하지만, switch에는 제약 조건이 있기 때문에 경우의 수가 많아도 if문을 쓰는 경우가 있다.

- switch의 조건식은 결과값이 반드시 정수!! 반드시 정수!!

- 결과값은 중복되는 것이 있으면 안된다.(결과값=조건식의값)

- 변수나 실수는 case문에 사용할 수 없다.

제약조건
- switch문의 조건식 결과는 정수 또는 문자열이어야한다.
- case문의 값은 정수 상수(문자포함), 문자열만 가능하며, 중복되지 않아야한다.
- 문자열은 1.7 jdk버전부터 지원이 가능하다.

1 . 조건식을 계산한다.

2. 조건식의 결과와 일치하는 case문으로 이동한다.

3. 이후의 문장들을 수행한다.

4. break 문이나 switch문의 끝을 만나면 swtich문을 전체를 빠져나간다.

5. break 문을 기재하지 않아서 오류가 발생하는 경우가 많으므로 주의한다.

switch(조건식){

   case 값1:

     //수행될 문장

   case 값2:

   //수행될 문장

   break;

  default :

   //조건식이 일치하는 것이 없을 경우 수행될문장

}

 

-임의의 정수 만들기(Math.random()을사용)

Math.random() 메소드는 0.0과 1.0 사이의 범위에 속하는 하나의 double값을 반환한다.

0.0은 포함되고 1.0은 포함되지 않는다.

0.0<=Math.random()<1.0

만일 1과 3사이의 정수를 구하기 원한다면 아래와 같은 방법으로 난수를 구할 수 있다.

- 1. 각변에 3을 곱한다.

   0.0*3<=Math.random()*3<1.0*3

  0.0<=Math.randdom()*3<3.0

- 2. 각변을 int 형으로 변환한다.

 (int)0.0<=(int)(Math.random()*3)<(int)3.0

 0<=(int)(Math.random()*3)<3

- 3. 각변에 1을 더한다.

 0+1<=(int)(Math.random()*3)+1<3+1

 1<=(int)(Math.random()*3)+1<4

결과: 1은 포함되고 4는 포함되지 않는 값의 랜덤값이 출력된다.

 

package Chapter04_if;

public class dailycoding {

	public static void main(String[] args) {
		int num=0;
		
		for(int i=1;i<=10;i++) {
			nums=(int)(Math.random()*6)+1;
			System.out.println(nums);
		}
	}
}

 

참조: 자바의 정석_기초편 참조

반응형

'자바의정석' 카테고리의 다른 글

Chapter01. 자바의 특징  (0) 2023.02.22
기본기_자바의 정석_Ch04_반복문  (2) 2020.10.05