초급의 끄적거림

[JAVA] if 문, switch문 (+ 연습문제) 본문

JAVA

[JAVA] if 문, switch문 (+ 연습문제)

codingD 2019. 8. 19. 16:18

[제어문]

⊙ 프로그램의 흐름을 제어한다

⊙ 조건문 : if, switch~case문

⊙ 반복문 : for, while, do~while

⊙ break (하다가 나가버리는 것), continue (하다가 다시 반복하는 것)

if(조건-조건문에서는 불린형으로 나옴, true나 false) { 조건이 true일 때만 수행 } 
  
if(조건) { 조건이 true일 때 수행 }
else {조건이 false일 때 수행}  // 삼항연산자와 같은 내용을 만듦
          
* else가 붙다보면 중첩해서 계속 사용 가능 (=if 안에 반복문 가능)
 if(조건) { 조건이 true일 때 수행 }  
 else if(조건) { 조건이 true일 때 수행 }
 else if(조건) { 조건이 true일 때 수행 }
 else if(조건) { 조건이 true일 때 수행 }
 else { 조건이 false 일 때 수행 }

 

 

[if문 연습문제]

String name="무궁화";
int kor=30, eng=30, mat=30;

int aver=(kor+eng+mat)/3;
  System.out.println("이름:" + name);
  System.out.println("국어:" + kor);
  System.out.println("영어:" + eng);
  System.out.println("수학:" + mat);
  System.out.println("평균:" + aver);

//평균이 95점 이상이면 "장학생" 출력
  if(aver>=95){
    System.out.println("장학생");
  }

//국어점수가 70점 이상이면 "합격" 그렇지 않으면 "불합격"
  if(kor>=70){
    System.out.println("국어 : 합격");
  }else{
    System.out.println("국어 : 불합격");
  }

 

 문제1) 수학점수가 90점 이상이면 "A학점", 80점 이상이면 "B학점", 70점 이상이면 "C학점", 60점 이상이면 "D학점",

          나머지 "F학점"

if(mat>=90){
 System.out.println("수학 : A학점");
} else if (mat>=80){
 System.out.println("수학 : B학점");
} else if (mat>=70){
 System.out.println("수학 : C학점");
} else if (mat>=60){
 System.out.println("수학 : D학점");
} else {
 System.out.println("수학 : F학점");
}

 

 

[switch~case문]

⊙ break문

  - 제시하는 값과 '동일'한 값을 찾아서 수행

  - 실수형, 논리형 등은 사용할 수 없다

switch(값){
 case+경우수1 : ~~~~; (본인이 필요로 하는 것)
 case+경우수2 : ~~~~; break;
   .   .  .
}

⊙ 'case+경우수' 에서 switch(값)과 동일한 값을 찾는 것, case에 존재하지 않는 값을 찾으려 한다면 수행X
⊙ break : if문이나 switch~case 또는 반복문을 벗어나는데 사용 (없으면 빠져나갈 수 없음)
⊙ default : 일치하는 경우수가 없을 때 수행하는 명령값을 제시
⊙  : 대신 >=와 같은 비교연산자 불가

 

 

[switch~case문 연습문제]

switch(10){
  case 10 : System.out.println("SEOUL"); break;
  case 20 : System.out.println("JEJU"); break;
  case 30 : System.out.println("BUSAN"); break;
} //SEOUL 출력



switch(50){
  case 10 : System.out.println("SEOUL"); break;
  case 20 : System.out.println("JEJU"); break;
  case 30 : System.out.println("BUSAN"); break;
  default : System.out.println("etc.."); 
}  //default 값으로 가게 됨, 경우수 50이 없기 때문


switch(20){
  case 10 : System.out.println("SEOUL"); break;
  case 20 : System.out.println("JEJU");
  case 30 : System.out.println("BUSAN"); break;
} //20에 break가 없기 때문에 20 (JEJU)과 30(BUSAN)의 값이 다 나타남

 

문) 평균점수에 따라서 A, B, C, D, F학점을 출력하시오

     90점 이상이면 "A학점" 80점 이상이면 "B학점", 70점 이상이면 "C학점", 60점 이상이면 "D학점",나머지 "F학점"

int kor=95, eng=90, mat=80;
int aver=(kor+eng+mat)/3;

System.out.println(aver);

switch(aver/10){
  case 10 :  
  case 9 : System.out.println("A학점"); break;
  case 8 : System.out.println("B학점"); break;
  case 7 : System.out.println("C학점"); break;
  case 6 : System.out.println("D학점"); break;
  default : System.out.println("F학점"); break;
}
//case 10은 굳이 수식을 적지 않아도 case 9 와 같은 값이 나오면 되기 때문에 적지 않음

 

 

[연습문제]

문1) 임의의 수가 양수, 음수, 제로인지 출력하시오.

int a=-3;
if(a<0){
 System.out.println("음수");
}else if (a>0){
 System.out.println("양수");
}else{
  System.out.println("제로")
};

 

문2) 코드값에 따라 성별을 출력하시오 (홀수 남, 짝수 녀)

int code = 1;

//방법1>
if(code%2==0){
  System.out.println("여성");
}else{
  System.out.println("남성");
}


//방법2>
if(code==1 || code==3){
  System.out.println("남성");
} else if (code==2 || code==4){
  System.out.println("여성");
}


//방법3>
switch(code%2){
  case 0 : System.out.println("여성"); break;
  case 1 : System.out.println("남성"); break;
}

 

문3)  연산기호에 따라 결과값을 출력하시오
 - 출력결과 : 5+7=12, 만약 op가 -가 된다면 5-7=-2가 되야하고, *가 들어가면 5*3=15, / 이면 5/7=0.7143, 5%7=5

int c=5, d=7;
char op='/'  //op의 기호에 따라서 값이 달라지도록

int res1=0;
double res2=0.0;

switch(op){
 case '+' : res1=c+d; break;
 case '-' : res1=c-d; break;
 case '*' : res1=c*d; break;
 case '/' : res2=(double)c/d; break;
 case '%' : res1=c%d; break;
}

if(op=='/'){
  System.out.println(c+""+op+""+d+"="+res2);
}else{
  System.out.println(c+""+op+""+d+"="+res1);
}//if end 

 

문4)  문제2의 코드를 참조해서 나이를 계산하시오

int myYear=10;  //태어난 연도 : 10, 1910년인지 2010년인지 알 수 없음
int code=1;     //2번에서 주어진 code 변수

switch(code){
  case 1 :
  case 2 : myYear=1900+myYear; break;
  case 3 :
  case 4 : myYear=2000|myYear; break;
}

int myAge=2019-myYear;
System.out.println("나이 : " + myAge + "살");
// 나이 : 109살
Comments