2016.08.04. Thu.
오늘의 수업내용!
- 변수에 대한 복습.
- . 의 기능
.는 객체지향 언어에서 매우 중요한 개념.
this.: class가 갖고 있는 모든 자원에 접근(this는 class를 의미)
this(): 생성자에 접근
*this로 main 접속은 지양한다. (교착상태에 빠질 수 있다)
*main(스택영역)에서는 this를 사용할 수 없다(Cannot use this in a static context)
*main 함수가 없으면 실행되지 않는다.
*main 함수는 1 Thread를 갖는다.
- 제어문(if & switch)
- 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 |