1.1 조건문 - if, switch
- 조건문은 조건식과 실행될 하나의 문장 또는 블럭{}으로 구성
- Java에서 조건문은 if문과 switch문 두 가지뿐이다.
- if문이 주로 사용되며, 경우의 수가 많은 경우 switch문을 사용할 것을 고려한다.
- 모든 switch문은 if문으로 변경이 가능하지만, if문은 switch문으로 변경할 수 없는 경우가 많다.
if(num==1) {
System.out.println("SK");
}else if(num==6) {
System.out.println("KTF");
}else if(num==9) {
System.out.println("LG");
}else{
System.out.println("UNKNOWN");
}
(=)
switch(num) {
case 1:
System.out.println("SK");
break;
case 6:
System.out.println("KTF");
break;
case 9:
System.out.println("LG");
break;
default:
System.out.println("UNKNOWN");
}
1.2 if문
- if문은 if, if-else, if-else if의 세가지 형태가 있다.
- 조건식의 결과는 반드시 true 또는 false이어야 한다.
if(조건식) {
// 조건식의 결과가 true일 때 수행될 문장들
}
if(조건식 {
// 조건식의 결과가 true일 때 수행될 문장들
}else{
// 조건식의 결과가 false일 때 수행될 문장들
}
if(조건식1){
//조건식1의 결과가 true일 때 수행될 문장들
}else if(조건식2) {
//조건식2의 결과가 true일 때 수행될 문장들
//(조건식1의 결과는 false)
}else if(조건식3){
//조건식3의 결과가 true일 때 수행될 문장들
//(조건식1과 조건식2의 결과는 false)
}else{
//모든 조건식의 결과가 false일 때 수행될 문장들
}
1.2 if문 - 조건식의 예(ex)
int i =0;
if(i%2==0) { }
if(i%3==0) {}
String str = "";
char ch = '';
if(ch=='' || ch=='\t') { }
if(ch=='c' || str=='C') { }
if(str="c" || str=="C") { }
if(str.equals("c") || str.equals("C")) { }
if(str.equalsIgnoreCase("c")) { }
if(ch>='0' && ch<='9') { }
if(ch>='0' && ch<='9')
if(ch<'0' || ch>'9') { }
if('a'<=ch && ch<='z')||
('A'<=ch && ch<='Z' { }
if(i<-1 || i>3 && i<5) { }
str ="3"; 문자열 "3" → 문자 '3'
if(str!=null && !str.equals("")){
ch = str.charAt(0);
}
boolean powerOn=false;
if(!powerOn){
//전원이 꺼져있으면...
}
1.3 중첩 if문
- if문 안에 또 다른 if문을 중첩해서 넣을 수 있다.
if (score >= 90) { //scorerk 90점보다 같거나 크면 A학점
grade = "A";
if(score >= 98) { //90점 이상 중에서도 98점 이상은 A+
grade += "+"; //grade = grade + "+";
} else if(score < 94){
grade +="-";
}
1.4 switch문
- 조건식의 계산결과와 일치하는 case문으로 이동 후 break문을 만날 때까지 문장들을 수행한다. (break문이 없으면 switch문의 끝까지 진행된다.)
- 일치하는 case문의 값이 없는 경우 default문으로 이동한다. (default문 생략가능)
- case문의 값으로 변수를 사용할 수 없다.(리터럴, 상수만 가능)
1.4 switch문 - 사용 예(example)
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';
}
1.5 중첩 switch문
- switch문 안에 또 다른 switch문을 중첩해서 넣을 수 있다.
switch(num) {
case 1:
case 7:
System.out.println("SK");
switch(num){
case 1:
System.out.println("1");
break;
case 7:
System.out.println("7");
break;
}
break;l
case 6:
System.out.println("KTF");
break;
case 9:
System.out.println("LG");
break;
default:
System.out.println("UNKNOWN");
}
1.6 if문과 switch문의 비교
- if문이 주로 사용되며, 경우의 수가 많은 경우 switch문을 사용할 것을 고려한다.
- 모든 switch문은 if문으로 변경이 가능하지만, if문은 switch문으로 변경할 수 없다.
- if문 보다 switch문이 더 간결하고 효율적이다.
1.7 Math.random()
- Math 클래스에 정의된 난수 발생함수
- 0.0이상 1.0미만의 double값을 반환한다.(0.0 <=Math.random() <1.0)
//예) 1~10범위의 임의의 정수를 얻는 식 만들기
//1. 각 변에 10을 곱한다.
0.0*10<=Math.random()*10<1.0*10
0.0<=Math.random()*10<10.0
//2. 각 변을 int형으로 변환한다.
(int)0.0<=(int)(Math.random()*10)<(int)10.0
0<=(int)(Math.random()*10)<10
//3. 각 변에 1을 더한다.
0+1<=(int)(Math.random()*10)+1<10+1
1<=(int)(Math.random()*10)+1<11
int score = (int) (Math.random()*10)+1;
2.1 반복문 - for, while, do while
- 문장 또는 문장들을 반복해서 수행할 때 사용- 조건식과 수행할 블럭{} 또는 문장으로 구성- 반복회수가 중요한 경우에 for문을 그 외에는 while문을 사용한다.- do-while문은 while문의 변형으로 블럭{}이 최소한 한번은 수행될 것을 보장한다.
2.2 for문
- 초기화, 조건식, 증감식 그리고 수행할 블럭{} 또는 문장으로 구성
2.2 for문 - 작성 예(example)
public static void main(String[] args){
int sum = 0;
int i;
for(i=1; i<=10; i++){
sum += i; //sum = sum+i;
}
System.out.println(i=1+"까지의 합: "+sum);
}
2.3 중첩 for문
- for문 안에 또 다른 for문을 포함시킬 수 있다.
for(int i=2; i<=9; i++){
for(int j=1; j<=9; j++){
System.out.println(i+" * "+j+" = "+i*j);
}
}
-------------------------------------------------------------------------
for(int i=2; i<=9; i++)
for(int j=1; j<=9; j++)
System.out.println(i+" * "+j+" = "+i*j);
-------------------------------------------------------------------------
for(int i=2; i<=9; i++){
for(int j=1; j<=9; j++){
for(int k==1; k<=3; k++)
System.out.println(i+" * "+j+" = "+i*j+"k="+k);
}
}
2.4 while문
- 조건식과 수행할 블럭{} 또는 문장으로 구성
while(조건식) {
//조건식의 연산결과가 true일 때 수행할 문장들을 적는다.
}
int i=10;
while(i >= 0){
System.out.println(i--);
}
2.5 중첩 while문
- while문 안에 또 다른 while문을 포함시킬 수 있다.
int i=2;
while(i <= 9){
int j=1;
while(j<=9){
System.out.println(i+" * "+j+ " = "+i*j);
j++;
}
i++;
}
2.6 do-while문
- while문의 변형, 블럭{}을 먼저 수행한 다음에 조건식을 계산한다.
- 블럭{}이 최소한 1번 이상 수행될 것을 보장한다.
do {
//조건식의 연산결과가 true일 때 수행될 문장들을 적는다.
} while(조건식);
class FlowEx24{
public static void main(String[] args) throws java.io.IOException{
int input=0;
System.out.println("문장을 입력하세요.");
System.out.println("입력을 마치려면 x를 입력하세요.");
do{
input = System.in.read();
System.out.println((char)input);
}while(input!=-1 && input != 'x');
}
}
2.7 break문
- 자신이 포함된 하나의 loop문 또는 switch문을 빠져 나온다.
- 주로 if문과 함께 사용해서 특정 조건을 만족하면 반복문을 벗어나게 한다.
class FlowEx25{
public static void main(String[] args){
int sum=0;
int i=0;
while(true){
if(sum>100)
break;
i++;
sum += i;
} // end of while
System.out.println("i="+i);
System.out.println("sum="+sum);
}
}
'JAVA > 개념' 카테고리의 다른 글
[JAVA] 06. OOP2(객체 지향 언어) (0) | 2017.08.01 |
---|---|
[JAVA] 05. OOP 1(객체 지향 언어) (0) | 2017.08.01 |
[JAVA] 04. Array (배열) (0) | 2017.07.31 |
[JAVA] 02. 연산자(Operator) (0) | 2017.07.28 |
[JAVA] 01. 변수(Variable) (1) | 2017.07.28 |
댓글