IT story/Java

D+4 제어문(if문 & switch문)

jason719 2016. 8. 4. 23:29

2016.08.04. Thu.


오늘의 수업내용!


  • 변수에 대한 복습. 
$ String mon = new String ("월"); << 변수 선언
//mon은 "월"의 값을 기억하는 것이 아니라, "월"의 저장 위치를 기억한다.

  • . 의 기능

.는 객체지향 언어에서 매우 중요한 개념.

this.class가 갖고 있는 모든 자원에 접근(this는 class를 의미)

this(): 생성자에 접근

*this로 main 접속은 지양한다. (교착상태에 빠질 수 있다)

*main(스택영역)에서는 this를 사용할 수 없다(Cannot use this in a static context)

*main 함수가 없으면 실행되지 않는다.

*main 함수는 1 Thread를 갖는다.


  • 제어문(if & switch)
1. If문
  •  If문은 Boolean(참과 거짓)을 이용해서 조건문을 만든다.
  •  If문을 이용해서 성적시스템 작성하기.

package com.javalesson.ch03control;


public class L01If {

public static void main(String[] args){

/* if - 조건문

* if()<-참과 거짓 boolean을 이용해 조건문을 만든다.

* 보통 비교연산자를 많이 사용한다.

* ==, <=, >=, <, >, !(not, 반대), !=, equals()

* &&(and), ||(or)

* A && B = A와B의 교집합

* A || B = A와B의 합집합

*/

boolean flag = 10>2;

if(flag){

System.out.println("()의 조건이 true");

}

if(!flag){

System.out.println("()의 조건이 false");

}

//성적 출력 시스템에 점수를 넣으면 성적이 나온다.

int score = 92;

String grade = "A+";

if(score>=95){

grade = "A+";

}else if(score>=90){

grade = "A";

}else if(score>=85){

grade = "B+";

}else if(score>=80){

grade = "B";

}else if(score>=75){

grade = "C+";

}else if(score>=70){

grade = "C";

}else if(score>=65){

grade = "D+";

}else if(score>=60){

grade = "D";

}else{

grade = "F";

}

System.out.println("학생의 성적은 "+grade+"입니다.");

//유효문자를 검사하는 시스템 -> 영문자만 문자로 취급!

//(a~z and A~Z)의 문자를 검사 한다.

char x = '4';

if((x>='a'&&x<='z')||(x>='A'&&x<='Z')){

System.out.println(x+"는 유효문자입니다.");

}else{

System.out.println(x+"는 사용할 수 없습니다");

}

}//main end


}//class end




2. Switch문

  • switch문을 이용해서 Month 출력하기 및 성적 시스템 출력하기

package com.javalesson.ch03control;


public class L02Switch {


public static void main(String[] args) {

/* switch 조건문

* if문 보다 빠르다

* if문 보다 조건을 파악하기 쉽다. (조건문이 쉽다) =if문의 조건식이 더 다양.

* switch문의 조건문으로 사용되는 key값은 기본데이터 타입만 가능(상수때 다시)

*/

int state = 2;

switch(state){

case 1:System.out.println("시스템 동작"); break;

case 2:System.out.println("시스템 대기"); break;

case 3:System.out.println("시스템 정지"); break;

default:System.out.println("시스템 오류"); break;

}

//break;를 사용하는 이유-> switch문이 빠른 것과 연관 있음

int key = 8;

String month = "Jul";

switch(key){

case 1: month = "Jan"; break;

case 2: month = "Feb"; break;

case 3: month = "Mar"; break;

case 4: month = "Apr"; break;

case 5: month = "may"; break;

case 6: month = "Jun"; break;

case 7: month = "Jul"; break;

case 8: month = "Aug"; break;

case 9: month = "Sep"; break;

case 10: month = "Oct"; break;

case 11: month = "Nov"; break;

case 12: month = "Dec"; break;

default: month = "Invalid Month"; break;

}

System.out.println("오늘은 "+month+"입니다.");

//A~F까지 내는 성적 시스템을 switch문으로 "+"가 없다. 90~ 80~ 70~ (int/10->반내림)

int score = 78;

char grade = 'A';

switch(score/10){

case 10: case 9: grade = 'A'; break;

case 8: grade = 'B'; break;

case 7: grade = 'C'; break;

case 6: grade = 'D'; break;

default: grade = 'F'; break;

}

System.out.println("학생의 성적은 "+grade+"입니다.");

}//main end


}//class end




3. Switch문으로 예제 연습

  • scanner를 이용해서 Consol창 직접 입력하기
  • 성적시스템에서 '+'를 추가하기

package com.javalesson.ch03control;


import java.util.Scanner;


public class L03SwitchEx {

public static void main(String[] args) {

int kor_score, en_score, m_score;

String grade = "A";

char plus = '+';

Scanner scan = new Scanner(System.in);

System.out.println("점수는 100과 같거나 작은 숫자만 입력하세요.");

do{

System.out.println("국어점수는");

kor_score = scan.nextInt();

}while(kor_score>100);

System.out.println("영어점수는");

en_score = scan.nextInt();

System.out.println("수학점수는");

m_score = scan.nextInt();

//switch문으로 만든 성적 프로그램으로 3개 점수의 평균 점수와 학점을 출력하세요.

//switch문으로 '+' -> 95~ 85~

double ttl=(kor_score+en_score+m_score)/3;

int avg=(int)ttl;

switch(avg/10){

case 10: case 9: grade = "A"; break;

case 8: grade = "B"; break;

case 7: grade = "C"; break;

case 6: grade = "D"; break;

default: grade = "F"; break;

}

plus=(((avg+5)/10-avg/10)==1)?'+':' ';

System.out.println("평균점수는 "+ttl+"입니다.");

System.out.println("학점은 "+grade+plus+"입니다.");

}//main end


}//class end




내일은 반복문에 대해서 배워보자!

'IT story > Java' 카테고리의 다른 글

D+6 Loop(반복문) While, Do While, Loop  (0) 2016.08.08
D+5 Loop(반복문) for  (0) 2016.08.06
D+3 DataType 두 번째 시간  (0) 2016.08.03
D+2 Eclipse 사용법 + DataType 첫 번째 시간  (0) 2016.08.02
D+1 터미널로 컴파일 하기  (0) 2016.08.01