오늘도 다시 포스팅을 하기 위해, 컴퓨터에 앉아서
검색사이트들을 확인해 보았는데 내글이 노출이 안되더라
아마 블로그 첫글을 쓴지 얼마 안되어서 그런것 같다
어제 열심히 썼던글을 아무도 보지 않았다는 사실이 왠지 속상하지만
아마 오늘도 그럴거니까 체념하고 두번째 복습을 시작해보자
오늘의 첫번째 주제는 자바 형변환 이다.
있어보이게 영어로 말하자면 Type Casting 이라고 한다
컴퓨터는 0과 1만 알아먹는다라는 이야기 들어봤을것이다.
어떤 사람들은 이걸 설명할때 컴퓨터는 우리보다 멍청해서 0과 1만 안다
라며 마치 우리가 컴퓨터보다 우월한 존재인것 처럼 표현하던데
난쫌 아니라고 본다
조금만 바꿔 생각해보면 0과 1만 알아도 수백만,수천만의 일을 처리할 수
있는게 바로 컴퓨터님이 아닌가?
그리고 꼭 인간이 더 잘났다고 떠들어 대는 작자들의 대부분이
그들이 없으면 굶어죽는 직종에 있는 사람들이다
먼훗날 인공지능이 엄청나게 발달하면 없어질지도 모르는 그런 직종 말이다.
개소리는 여기까지만 하고 첫번째 예제로 가보도록 하자
'그래서 자바 형변환 은 뭔데 ' 물어볼거면 내창은 잠시 최소화 해두고
구글을 켜 검색해서 알아보고 와라
어제도 말했지만 난 코더가 되고 싶은게 아니라 글을 잘쓰고 싶어 블로그를 시작했다.
class CastEx { public static void main(String[] args) { int n = 12; byte b = (byte)n; System.out.println(b); } }
위의 자바 형변환 예제에서는 int형 n 변수에 12를 담아준후,
byte로 형변환 해준 다음 다시 출력하는 과정을 보여주고 있다
여기서 우리가 알아야 할것은 자료형들의 사이즈 즉 크기인데
일단은 byte < char < int < double 이라고만 알아두자
왜냐하면 내 자바 책에 그렇게 필기해 놓았기 떄문이다
과거의 내가 '나머지 설명은 가깝지만 먼미래에 알려주겠다 ' 라고 적어놓았더라
과거의 나를 믿고 지금은 그냥 넘어가도록 하자
class CastEx2 {
public static void main(String[] args) {
byte b = 10;
// byte -> int
int n = b;
}
}
2번째 예제는 첫번째의 반대 상황이라고 생각하면 된다
한마디로 요약하자면, 더 큰 자료형으로 변환 하는것이다
결과는 직접 타이핑 하고 결과를 출력해보길 바란다
이번만큼은 내가 귀찮아서 그런게 아니라 ,
프로그래밍이란 직접 쳐봐야 실력이 늘어난다고 누가 그랬다
class CastEx3 { public static void main(String[] args) { char c = 'a'; // char -> int int n = c; System.out.println(n); n++; char newC = (char)n; System.out.println(newC); } }
이번엔 그전에 것들보다 조금더 긴 코드가 나왔다
char형이 문자형이라고 아마 다들 배웠을 것인데 ,
사실 컴퓨터가 계산할때에는 숫자로 받아들인다고 한다.
여기에 대한 이유도 ' 다음에 시간나면 알려주겠다 ' 라고 과거의
내가 적어놓았으니 한번 그를 믿고 넘어가도록 하자
어째 계속 미루기만 한다라고 생각한다면 그건 네가 나의
빅피쳐를 꿰뚫어 볼만한 통찰력이 없는것이니
가만히 따라오기나 하자
그래도 궁금해서 참을수 없다 라고 한다면 구글로 가보도록 하자
import java.util.Scanner; class Answer { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("키를 입력하세요 : "); int height = scan.nextInt(); boolean result1 = (height >= 175); boolean result2 = (height <= 185); System.out.println( "이상형 여부 : " + ( result1 && result2 ) ); } }
바로 어제 써먹었던 코드를 재활용한 내용인데,
한층 더 업그레이드된 엿먹이기라고 볼수 있다.
175이상 185 이하 일 경우만 이상형 여부에서 true가 된다는
현대 외모지상주의의 더러운 면모를 단적으로 보여주는 그런 코드다
자바 형변환 배울때 쯤이면 && 정도는 알테니까 따로 설명안해도 된다고 생각하고,
당신이 저 범주 안에 들지 못한다면 이건 따로 타이핑 하지말도록 하자
아무리 당신 키를 입력해도 false일테니 말이다.
class IfEx1 {
public static void main(String[] args) {
int grade = 91;
if(grade >= 60) {
if(grade > 90) {
System.out.println("장학금 대상자 입니다.");
} else {
System.out.println("합격");
}
} else {
System.out.println("불합격");
}
}
}
4번째 만에 드디어 컴공생들의 희망이라 불리는 if문이 나왔다.
정말 고귀하고 우아한 존재가 아닐수 없다
if문이 없었더라면 컴퓨터 공학과는 높은 자퇴율로 아마 존재하지 않을수도
있을거라고 나는 생각한다.
모든 고급문법들을 대신할수 있는 가능성을 가지고 있기 때문이다
무슨말인지 잘 모르는 사람도 있겠지만
나중에 다 알게된다 미리 알필요 없다 알아서 좋을것도 없다
자괴감만 들게 될테니까
위의 내용에서는 if와 짝지인 else를 사용하여
60점이상이면 합격인데 , 그중 90점 이상인 외계인들은 장학금 대상자가 되고
60미만인 정상인들은 불합격 통보를 받는다라는 것이다.
잠시 얘기가 새어 나가서 컴공생에게 60이상 합격이라면
정보처리기사를 생각할수 있다. 요새 점점 어려워지는 추세인데
혹시나 따지 않았더라면 더 어려워 지기 전에 따놓도록 하자
4학년 시작하자마자 따놓는게 좋다
괜히 미뤘다간 나중에 100퍼 후회한다
class IfEx2 {
public static void main(String[] args) {
int grade = 40;
int n = 4;
int num = 2;
if(n == 4) {
if(n < 2) {
System.out.println("A");
} else {
System.out.println("B");
}
System.out.println(num);
}
}
}
if문 안에 if - else 코드를 넣을수도 있다.
가장 바깥쪽의 if문에 조건이 맞다면 그 scope안에 if문의 조건들을
다시 확인하는 그런 절차가 진행된다.
그렇게 조건들을 따져나가 맞다면 , 가장 안쪽 scope에 실행문이 실행될것이다
맞지 않는다면 else내용이 실행될것이고 !
내 설명이 잘 이해가 되지 않는다라고 생각하면 당신은 정상인이니
그냥 코드를 한번 쳐보고 결과를 보아라 !
그게 훨씬 이해하기 쉬울것이다
class IfEx3 {
public static void main(String[] args) {
boolean flag = true;
int num;
if(flag) {
num = 2;
} else {
num = 1;
}
System.out.println(num);
}
}
이번에 주목해야 할것은 if문 조건이다
이전 것들과는 다르게 flag라는 boolean형 변수를 사용하여
참인지 거짓인지 판단하게 하였다.
boolean도 자료형인데 true와 false 이 두가지를 표현한다.
자바 공부를 할때 API문서를 참조하라 라고 강의시간에
귀 아프게 들었던 기억이 난다
그만큼 중요하며, 자바 만든 사람들이 설명해주는 내용이니
영어로 적혀있다고 외면하지 말고 항상 곁에 두는 습관을 가지도록 하자
import java.util.Scanner; public class Pay { public static void main(String[] args) { final int RATE = 50000; int pay; int hours; Scanner input = new Scanner(System.in); System.out.print("시간을 입력하시오: "); hours = input.nextInt(); if(hour > 8) { pay = RATE * 8 +(int)(1.5 * RATE * (hours - 8))); { else pay = RATE * hour; System.out.printf("임금은 %d입니다.\n",pay); } }
벌써 마지막 예제가 등장했다
마지막이라고 복잡해 보이긴 하지만 별거 없는 그런 내용으로 구성되어 있다
input을 입력받은후 hour 변수에 담아주고 그놈을 조건에 사용하여
8보다 클경우만 임금 계산법이 달라진다는 것인데,
직접 쳐보고 해보면 바로 알수 있는것이니 따로 설명하지 않겠다!
마지막까지 이딴식으로 할거냐고 물어본다면
난 앞으로도 쭈욱 그럴것이니 내게 양심을 바라지말자 !
오늘은 여기까지만 하고 마무리 해야되겠다
당신의 아쉬움이 느껴지는게 안타깝긴 하지만
오늘은 여기까지만 하고 내일 또 복습내용을 써보도록 하겠다
어제도 말했지만 초보자들은 모르는 내용이 있으면 댓글을 남기도록 하고
고수들은 초보자들이 몰라서 올린 댓글에 답글을 달도록 하자
그럼 너는 뭐할거냐고 물어보고 싶다면 어제 내가 쓴 포스팅글을 읽도록 하자
가장 마지막에 이유가 나와있다
난 그럼 이만~
'IT > 자바' 카테고리의 다른 글
클래스 사용 연습 및 복습 (0) | 2017.05.02 |
---|---|
클래스 메소드 정확한 이해 (0) | 2017.04.30 |
조건문 switch 반복문 while for (0) | 2017.04.29 |
Scanner와 print 그리고 간단한 수식 (0) | 2017.04.27 |
자바 프로그래밍 복습을 시작합니다 (0) | 2017.04.23 |
댓글