티스토리 뷰
좀 늦어진 감이 없진 않군요.
요즘 반 배치다 뭐다 해서 java를 공부하지 못한 관계로...
그래서 빨리 쓰겠습니다.
이번에는 저번 강좌에서 얘기 한 것과 같이 좀 재미있습니다. ㅋㅋ
다들 영문법을 배우셨을거라고 생각하는데요 if절에 대한 부분도 배우셨을거라 생각됩니다.
java에서도 이런 if구문을 제공하고 있습니다.
바로 if~else구문입니다.
그래서 이번에는 자바 프로그램의 흐름 제어 역할을 하는 if~else문에 대해 알아보도록 하겠습니다.
먼저 if구문의 기본 뼈대를 설명하겠습니다.
if(true 또는 false)
{
/* 괄호 값이 true일경우 실행되는 영역 */
}
else
{
/* 괄호 값이 false일경우 실행되는 영역 */
}
이런 구조를 지니고 있습니다.
괄호 ( ) 안에 true가 오면 true부분이, false가 오면 false부분이 실행되는 것이지요.
그런대 여기서 괄호 ( )에는 true또는 false만 올 수 있습니다.
그러므로 true와 fasle를 반환하는 연산자와 boolean 변수도 들어갈 수 있겠죠?
if절은 구조가 간단해서 별다른 설명은 필요 없을 듯 합니다.
간단하게 예제를 살펴보도록 하겠습니다.
class Ifelse { public static void main(String[] args) { int n1=50, n2=80; if(n1<50) System.out.println("n1은 50보다 작다"); else System.out.println("n1은 50이거나 50보다 크다"); if(n1==n2 && n1>n2) System.out.println("n1=n2이며 n1>n2이다"); else System.out.println("n1=n2와 n1>n2가 성립하지 않는다"); } }
이런 소스가 있습니다.
int형 변수로 n1과 n2를 선언하고 있군요.
그다음 첫 번째 if로 n1<50을 연산하게 해서 그 결과를 보고 표현하라고 되어 있습니다.
이 경우 n1<50이 성립하지 않으므로 else다음 구문이 실행되게 되는 것입니다.
두 번째 if에서는 &&연산을 진행하고 있는데요.
n1==n2가 false이므로 SCE에 의해 n1>n2는 연산 되지 않을 것 이라고 생각 할 수 있습니다.
이 경우에도 마찬가지로 false가 나오게 되므로 else다음 구문이 실행될 것이라 예측할 수 있습니다.
실행 결과를 봐도 예상과 같은 결과가 나타나는 것을 확인할 수 있습니다.
그런대 위 소스를 보면 if~else구문에 중괄호 { }가 빠져 있는 것을 보셨나요?
이렇게 실행할 구문이 1개일 때는 중괄호를 없애도 문제가 발생하지 않습니다.
그러나 되도록 실력을 키우기 위해, 자바에서 가독성 높은 코드를 작성하기 위해, 중괄호를 쓰는 것을 추천합니다.
요즘은 중괄호 {}와 세미클론 ;이 없는 프로그래밍 언어도 있다고 하더라고요..
참고로 if~else구문은 java에서 낱말이 떨어져 있지만 하나의 구문으로 인식합니다.
이렇게 if~else에 대해 살펴 보았습니다.
저는 아주 간단한 예만 들어 설명한 것일 뿐 if문은 아주 유용하게 사용됩니다.
예를 들면 다중(중첩) if문도 가능하지요.
그런대 java에서는 if와 성격이 비슷한 연산자가 또 있습니다.
바로 ? : 기호입니다.
이것은 조건 연산자 인데요.
피 연산자가 3개인 유일한 연산자입니다.
int number1=20, number2=30, whyis;
whyis=(number1>number2)?number1:number2;
자 여길 보시면 ?와 :을 사용한 모습을 보실 수 있습니다.
이렇게 조건 연산자를 사용했는데요.
원리를 말씀드리자면,
?기호 왼쪽에 true가 있다면 :기호의 왼쪽 숫자가 반환,
?기호 왼쪽에 false가 있다면 :기호의 오른쪽 숫자가 반환됩니다.
그러므로 위 파란 박스에서는 number1>number2가 false이므로 number2의 값이 반환되겠지요?
이렇게 해서 if~else구문에 대한 설명이 마쳐졌습니다. ㅎㅎ
복습겸 이렇게 작성하니 확실히 이해가 잘되네요..ㅎㅎ
만약 지금 이 글을 보고 계신다면 직접 소스 한번 짜보시는 연습해 보시길 강력 추천드립니다. ㅋㅋ
'Programming > Java' 카테고리의 다른 글
무한루프(無限Loop)와 그 유용성에 대해 (0) | 2013.03.08 |
---|---|
반복문에서 부가적인 역할을 하는 continue와 break (5) | 2013.03.02 |
반복문을 끝내볼까? while, for, do~while (0) | 2013.03.01 |
Switch와 break는 어떻게 사용할 수 있을까? (0) | 2013.03.01 |
if~else, 만약 ~이라면 ~을 실행하라 (2) | 2013.02.27 |
비트 연산자, 연산자의 끝을 달려가보자 (0) | 2013.02.23 |
단항 연산자는 이항연산자와 무슨 차이가 있지? (0) | 2013.02.23 |
계산을 할수 있는 연산자에 대해 알아보자! - 2편 (0) | 2013.02.22 |
계산을 할 수 있는 연산자에 대해 알아보자! - 1편 (0) | 2013.02.22 |
-
러그 미르님! 안드로이드 앱에서요..
만약 프리퍼런스인 "TextValue" 가 없을 시 AppInfo 란 액티비티를 실행하려고 합니다..ㅠ
그래서 이렇게 짜보았는데요..
"TextValue"가 없을 시에도 반응이 없네요;..ㅠㅠ
SharedPreferences prefs = getSharedPreferences("TextValue", MODE_PRIVATE);
if(prefs.getString("TextValue", "") == null){
startActivity(new Intent(this, Appinfo.class));
}
뭐가 잘못된 걸까요?
2014.02.06 20:59 -
Mir(미르) 두가지가 잘못됬어요
먼저 String은 ==이 아니라 equals로 비교해야 하고
null이 아니라 ""입니다
(왜냐면 prefs.getString("TextValue", "" )에서 두번째 ""가 반환값 이잖아요 ㅋ)
if("".equals(prefs.getString("TextValue", "" ))){
startActivity(new Intent(this, Appinfo.class));
} 2014.02.07 11:27 신고
- [C] printf로 *(별) 피라미드 출력하기
- [자료구조] #1 재귀호출
- Code Server에서, C/C++ 확장 플러그인 충돌 문제 해결법
- 집에서 혼자 통기타 헤드머신 구멍 넓히기
- XPEnology Nas (헤놀로지 나스) 구축기
- UTM iOS Virtual Machines 앱으로 iPad에 윈도우, 맥 설치하기
- iPad Pro로 프로그래밍하기
- Windows Hello로 인한 원격 데스크톱(RDP) 로그인 불가 문제
- 윈도우 태블릿에 Android-x86 설치 후기
- pre 태그만 있는 과거 게시글도 Highlight.js 적용하기
- 감사합니다. 덕분에 잘 해결했습니다.
- ㅠㅠㅠ 여러 분들께서 달아주신 댓글까지 참고해보시고 해결법을 직접 찾아보셔⋯
- 코시4극변환케이블 구매해서 끼워봣는데도 안되네요 ㅜㅠㅜ 안되는건가요 ㅜㅠ⋯
- 아이패드에 3가지 선 모두 coms로 구매했는데 구매한거에서는 잘못된게 없는거⋯
- 말씀하신 것만으로는 젠더 불량인지 패드에서 인식만 못하는 것인지 판단이 안⋯
- 말씀해주신대로 했는데 녹음인출? 이 안되네요 ㅜㅠ 젠더 문제 인가봐요 제가⋯
- 3번에 이어폰 연결하신 후 3번을 아이패드와 다시 뺏다 꼈다 해보세요.
- 3번 케이블의 헤드셋 부분에 아무 이어폰이나 연결해주세요. 를 보고 여분⋯
- ㅜㅠ 선생님 선생님이 올려주신 coms에서 파는 3가지 젠더를 모두 사서 해봤는⋯
- 제가 letex으로 책, 논문을 써본적이 없어서 잘 모르겠습니다...!
- Total
- 2,070,500
- Today
- 456
- Yesterday
- 640
- String Name = Mir(itmir913);
- String Mail = itmir913@gmail.com;
- String github = https://github.com/itmir913;