ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3. 연산자들, 조건문, 반복문
    program_language 및 궁금한것/Java 2019. 4. 9. 17:24

    오늘의 날씨: 흐림

     

    not inisialize <----- 초기화를 하지 않았다.

    WhiteSpace <----- 공백

     

    자바 어플리케이션의 main ---> 독립적으로 실행할 수 있는 자바 프로그램

     

    증감연산자

     

    System.out.println("su3++(후위연산자)==>" + su3++); 

    변수명++ ---> 후위 연산자

    su++ ---> su=su+1;  

    ++ su3 은 전위 연산자로 타 연산과 같이 사용할경우 계산 먼저하고 다른 연산 사용할게 라는말

     

    System.out.println("++su3(전위연산자)==>" + ++su3);

    ++변수명 ---> 전위 연산자

    ++su ---> su=1+su;  연산 먼저하고 다른 연산자 사용할게! 내가 먼저!

    su3++은 후위 연산자로 타 연산과 같이 사용할 경우 다른연산을 먼저 사용하고 계산을 진행함

    다른 연산자에는 System.out.println이 있음

     

    		// 증감연산자
    		int su1 = 300;
    		su1 = su1 + 1;
    
    		int su3 = 50;
    		System.out.println(su3);
    		su3++;
    		System.out.println(su3);
    		++su3;
    		System.out.println(su3);
    		System.out.println("su3++(후위연산자)==>" + su3++);
    		System.out.println("++su3(전위연산자)==>" + ++su3);
            // 결과값
            50
            51
            52
            su3++(후위연산자)==>52
            ++su3(전위연산자)==>54

    su= su+2; ---> su +=2; // 곱하기 빼기 나누기 등 사용하는 방식은 같음.


    논리연산자

     

    A, B는 boolean 데이터!

    (true가 1, false 가 0이라는 가정)

    && 연산시 앞이 false이면 뒤에는 실행이 되지 않는다. (하지만 db에서는 반대이다)

     

    // 평달인지 윤달인지?
    public static void main(String[] args) {
    		// command
    		int year = 2019;
    		// (year % 4) ==0; <-- false
    		boolean status1 = (year % 4) == 0;
    		boolean status2 = year % 100 != 0;
    		boolean status3 = year % 400 == 0;
    
    		boolean result = (status1 && status2) || status3;
    		System.out.println(result);
    	}

    조건문

     

    - 조건에 따라 실행할 문장들을 제어하는 역할

    - 반드시 메소드 내에 기술한다.

    - if문, if~else문, swith~case문, if~else if ~if문

    - 조건: 컨디션(condition)

    if(조건식) <---boolean데이터! 메소드도 return값이 boolean이라면 가능!

                  --- 실행할 문장이 한개라면 {}영역 괄호 생략이 가능하다!

                  --- 홀로 사용이 불가능 하고 반드시 if(){}블럭 뒤에 위치를 해야 한다.

    demotion <---- 상수형 중 큰 타입의 자료형이 작은 타입의 자료형이 들어갈 수 잇는 경우를 말한다.

    promotion <--- 작은 자료형을 큰 타입의 자료형에 넣는 것이다.

    compile을 통해서 .class --> .java로 변환

     

    switch(기준데이터){  // 수식의 데이터 값: 정수(byte, short, int, long) 문자(char), , 문자열(String)

        case 비교데이터1: 실행할 문장1;

        break;

        case 비교데이터2: 실행할 문장2;

        break;

        case 비교데이터3: 실행할 문장3;

        break;

        default: 일치하는 case값이 없을 때 깁ㄴ적으로 실행할 문장;

    }

    ** case는 처음부터 끝까지 다 읽는다. 그래서 break를 사용하는 것이다.

     

    break <--------- switch블럭, 반복문 블럭 안에서 사용.

            = break는 깨뜨리다라는 뜻이다. 감싸는 블럭을 벗어나는 역할을 한다.

    default // 일치하는 case값이 없을때 실행할 문장을 말한다.

    예제1.

    public class SwitchTest {
    
    	public static void main(String[] args) {
    
    		int su = 5;
    
    		switch (su) { // 수식의 데이터 값: 정수(byte, short, int, long) 문자(char)
    		case 1:
    			System.out.println("안녕?");
    			break; // <--------- switch블럭, 반복문 블럭 안에서 사용.
    					// break를 감싸는 블럭을 벗어나는 역할이다! 깨뜨리다의 뜻
    		case 2:
    			System.out.println("xinchao");
    			break;
    		case 3:
    			System.out.println("Hello");
    			break;
    		default: // 일치하는 case값이 없을때 실행할 문장
    			System.out.println("감사합니다.");
    		}
    	}
    }
    
    public class JumsuTest {
    
    	public static void main(String[] args) {
    
    		int jumsu = 100;
    
    		// ------> 출력값: B학점입니다!
    		// - 비교연산자가 들어갈 수 없다.
    		// - 비교연산의 결과값이 boolean형으로 나오는데 jumsu자료형과 같은 자료가 아니기에 컴파일 에러가 뜬다.
    
    		switch (jumsu / 10) {
    		case 10: // <--- 100점의 경우 10의 케이스가 나오고 패스하면 case 9로 가게 된다.
    					// 200점 이상의 경우 default로 넘어가게 되는데 이건 case문으로 교정할 수 없다. if문으로 감싸야 한다.
    		case 9:
    			System.out.println("A학점입니다.");
    			break;
    		case 8:
    			System.out.println("B학점입니다.");
    			break;
    		case 7:
    			System.out.println("C학점입니다.");
    			break;
    		case 6:
    			System.out.println("D학점입니다.");
    			break;
    		default:
    			System.out.println("F학점입니다.");
    			break;
    		}
    	}
    }
    

    100점의 경우 10의 케이스가 나오고 패스하면 case 9로 가게 된다.
    200점 이상의 경우 default로 넘어가게 되는데 이건 case문으로 교정할 수 없다. if문으로 감싸야 한다.

     

    if(조건식){

        조건식이 참일때 실행할 문장;

    }else if(조건식2){

        조건식1이 거짓이고, 조건식 2가 참일때 실행할 문장;

    }else if(조건식3){

        조건식 1,2가 거짓이고 조건식 3이 참일때 실행할 문장;

    }else {

        조건식 1,2,3이 거짓일대 실행할 문장.

    }

    class BB {
    	void bb() {
    		int jumsu2 = 76;	// 조건문
    		if (100 >= jumsu2 && jumsu2>= 90) {  
    			System.out.println("A학점입니다.");
    		} else if (jumsu2 >= 80) {
    			System.out.println("B학점입니다.");
    		} else if (jumsu2 >= 70) {
    			System.out.println("C학점입니다.");
    		} else if (jumsu2 >= 60) {
    			System.out.println("D학점입니다.");
    		} else {
    			System.out.println("F학점입니다.");
    		}
    	}
    }
    

    ** else if : 조건을 만나면 다음 if문은 실행되지 않는다.

    if(!result) {  // result==false <-- ! 는 Not Result, 부정연산자

     

    메소드정의

    리턴형 메소드명( )

    {

        // 변수선언 int min;

        // 변수초기화 su=300;  min=0;

        // 메소드호출 sysout ("안녕");

        // 조건문 if(조건식) {}

        // 반복문

    }


    반복문 <--- Loop, continue 문

    1.  for문

        - 일정횟수 반복할 때 사용

        - 규칙적인 수를 표현할때 사용

        - 배열의 인덱스를 표현할 때 사용

          * 인덱스는 배열의 순차적인 번호를 의미한다.

        [ 형식 ]

        for( 초기화; 조건식; 증감연산자 ) { 반복적으로 실행할 문장; } <--- 반복할 문자가 하나라면 {}생략 가능

        System.out.println("안녕");

    for 문 예제.

    public class ForTest {
    	public static void main(String[] args) {
    
    		Z1 z1 = new Z1();
    		z1.op();
    		
    	}
    }
    
    class Z1 {
    	void op() {
    
    		System.out.println("======1부터 5까지 출력======");
    		for (int i = 0; i < 5; i++) {
    			System.out.println(i + 1); // <-- println은 line new(개행), 줄바꿈을 실행한다.
    		}
    
    		// 1 2 3 4 5
    		System.out.println("======1 2 3 4 5 를 출력======");
    		for (int i = 0; i < 5; i++) {
    			System.out.print(i + 1 + " "); // <--print는 데이터 출력만한다.
    		}
    
    		System.out.println();// 띄어쓰기
    
    		System.out.println("======5 4 3 2 1 를 출력======");
    		for (int i = 5; i > 0; i--) {
    			System.out.print(i + " ");
    		}
    
    		System.out.println(); // 띄어쓰기
    		System.out.println("======3 6 9 12 를 출력======");
    		System.out.print("[");
    		for (int i = 3; i < 13; i += 3) {
    			// i+=3;
    			System.out.print(i); // 4회
    			if (i < 12) {
    				System.out.print(",  "); // 3회
    			}
    		}
    		System.out.println("]");
    		//
    	}
    }

    결과값.

    ======1부터 5까지 출력======
    1
    2
    3
    4
    5
    ======1 2 3 4 5 를 출력======
    1 2 3 4 5 
    ======5 4 3 2 1 를 출력======
    5 4 3 2 1 
    ======3 6 9 12 를 출력======
    [3,  6,  9,  12]
    

    2.  while문

        - 반복되는 횟수가 일정치 않을때 사용한다.

        - 서버의 리스너를 표현할때 --> 무한반복할때

        ex) RMI (Remote), sorket 

    [형식] 

    while( 조건식 ){ 조건식 결과가 참일 동안 실행할 문장 }

    조건에는 boolean형 값만 들어갈 수 있다.

    예제. 결과: sum은--->55

    public class WhileTest {
    
    	public static void main(String[] args) {
    
    		// while문을 사용해서 1~10가지 더한 값을 화면에 출력하세요.
    		int sum = 0; // 데이터 누적
    		int su = 0; // 1씩증가
    		boolean flag = true; // 논리값
    
    		while (flag) { // flag의 논리값이 true일 경우에만 실행하자. false면 break
    			sum = sum + su; // sum=0+1, sum=1+2, sum=3+4...
    
    			su++; // 1씩 증가하기 때문에 su를 증가시켜준다.
    			// System.out.println(su); // su가 제대로 증가하는지 찍어보기
    
    			if (su > 10) // 만약 수가 10이상이라면 flag는 false로 바꾼다. 그렇다면 while문 실행이 멈추겟지?
    				flag = false;
    
    			// 이곳에 System.out.println(sum)을 하면 값이 총 10번 찍히겠지?
    
    		} // while문 끝났다.
    
    		System.out.println("sum은--->" + sum); // while문을 마치면 sum의 최종값을 출력한다.
    
    	}
    }
    

    3.  do ~ while문

        - while문과 동일

          차이점: 실행횟수(1~무한대)

          --> 조건식의 결과와 상관없이 무조건 한번은 실행한다.!

    [형식] do{ 반복실행할문장 } while(조건식);

    public class DoWhileTest {
    
    	public static void main(String[] args) {
    
    		// 문제) do~while문을 사용하여 "Hello World!"를 화면에 3번 출력하시오.
    		boolean flag = true;
    		int cnt = 1;
    		do {
    			System.out.println("Hello World!");
    			if (cnt++ == 3) {
    				break; // == flag=false; 이 두가지의 뜻은 똑같당
    			}
    		} while (flag);
    		
    		// do~while문을 사용하여 1~10 합을 출력하시오.
    		int su = 1, sum = 0;
    
    		// 적합한 순서는 아니다.
    		do {
    			sum += su;	// sum=sum+su
    			// 실행순서     3      1    2
    			if(su<10) {
    				su++;
    				continue; //계속 실행 다음에 sum+su;로 돌아갔다가 if(false)이니 flag=false가 된다.
    			}
    			flag=false;
    		} while (flag);
    		System.out.println("1부터 10까지의 합 --->"+sum);
    	}
    }
    

    프로그래밍에선 CSV라는 언어를 많이 사용한다.

    CSV -  comma, Seperater, Value

     

    연산의 종류에는사칙연산, 논리연산, 비트연산이 있다.

    반응형

    댓글

Designed by Tistory.