[JAVA] 03. 조건문, 반복문 (Control Statement)

2017. 7. 30. 17:45·JAVA/개념
728x90
반응형

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);
    }
}
 

728x90
반응형

'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
'JAVA/개념' 카테고리의 다른 글
  • [JAVA] 05. OOP 1(객체 지향 언어)
  • [JAVA] 04. Array (배열)
  • [JAVA] 02. 연산자(Operator)
  • [JAVA] 01. 변수(Variable)
밍글링글링
밍글링글링
mingling - 밍글링, 밍글밍글링. 코드와 어우러지다. IT/ 프로그래밍/소스
    반응형
    250x250
  • 밍글링글링
    mingling
    밍글링글링
  • 전체
    오늘
    어제
    • 밍글링글링 (407) N
      • Flutter (2)
      • 일상생활 (8)
        • 리뷰 (1)
        • 생활정보 (4)
        • 맛집 (0)
        • 여행 (0)
        • 모든정보 (3)
      • JAVA (126)
        • 개념 (6)
        • 예제 (115)
        • Exception (2)
      • C (1)
        • C (1)
        • C++ (0)
        • C# (0)
      • JS (29)
        • JavaScript (18)
        • JQuery (5)
        • AJax (0)
        • NODE.JS (6)
        • Angular.JS 2.0 (0)
      • WEB (87)
        • HTML (6)
        • CSS (61)
        • JSP (20)
        • JSTL (0)
      • FrameWork (8)
        • Spring (8)
        • BootStrap (0)
        • MyBATIS (0)
        • JUnit (0)
      • 외부 라이브러리 (5)
      • 공유 소스 관리 (5)
        • Git (5)
        • SVN (0)
      • 빅데이터 프로그래밍 (37)
        • Python (37)
        • R Programming (0)
      • DB (7)
        • ORACLE (0)
        • MySql (6)
      • Development Tools (7)
        • StarUML (0)
        • eXERD (0)
        • Eclipse (4)
      • SKILL (6)
        • Migration (0)
        • Security (6)
      • MicroSoft (0)
        • Excel (0)
        • Word (0)
      • Android (0)
      • Server (21)
        • Ubuntu (5)
        • Linux (15)
      • IOS (0)
      • XML (0)
      • 미디어 (0)
      • 공지사항 (3)
      • NETWORK (1)
      • 게임 (4)
        • 피파 (1)
        • 리니지M (0)
        • 배틀그라운드 (1)
        • 듀랑고 (2)
      • 세상 이슈 (6)
      • 일렉트론 (0)
      • 대회 소식 (4)
      • 업무 (2)
      • Express, Vue (6)
      • docker (11)
      • svelte (3)
      • 블록체인 (1)
      • IT (10) N
      • Rust (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ubuntu
    Java Array
    proxy pass
    자바 생성자
    러스트
    API 설계
    rust linux
    spring java
    css block
    css float
    자바 for문
    자바 객체 지향
    자바 배열
    Rust lang
    브라우저 자동화
    Node
    docker
    java casting
    css transition
    css tb
    nginx ssl 설정
    티스토리 자동화
    Extension Bisect
    mysql db
    nginx
    jsp include
    svelte
    css perspective
    vscode
    오류
    에디터 팁
    vue 설치
    nginx ssl 적용
    VS Code 팁
    리눅스 설치
    SSL 인증서
    자바 클래스
    lang rust
    gitlab 설치
    AI 코딩 에이전트
    css table
    React Compiler
    프런트엔드
    ssl 인증서 발급
    jsp parameter
    css list
    클론코딩
    servlet class
    자바 exception
    vue cli
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
밍글링글링
[JAVA] 03. 조건문, 반복문 (Control Statement)
상단으로

티스토리툴바