반응형

           

  JAVA Study





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
public class tistory {
 
    public static void main(String[] args) {
        
        //switch 문
        System.out.print("현재 월을 입력하세요>>");
        
        Scanner scn = new Scanner(System.in);
        int month = scn.nextInt();
 
        switch(month){
            case 3:
            case 4:
            case 5:
                System.out.println("현재 계절은 봄입니다.");
                break;
            case 6case 7:    case 8:
                System.out.println("현재 계절은 여름입니다.");
                break;
            case 9case 10case 11:
                System.out.println("현재 계절은 가을입니다.");
                break;
            default:
            //case 12: case 1: case 2:
                System.out.println("현재 계절은 겨울입니다.");
        }
 
 
        //switch 문
        System.out.print("가위 (1), 바위 (2), 보 (3) 중 하나를 입력하세요>>");
        
        Scanner scn1 = new Scanner(System.in);
        int user = scanner.nextInt(); // 화면으로 입력받은 값을 user에 저장
        int com = (int)(Math.random() * 3)+1// 1,2,3 중 하나가 com에 저장    
        
        System.out.println("당신은 "+user);
        System.out.println("컴은 "+com);
 
        switch(user-com){
 
            case 2case -1:
                System.out.println("당신이 졌음");
                break;
            case 1case -2:
                System.out.println("당신이 이겼음");
                break;
            case 0
                System.out.println("비겼음");
                break;
        
        }
 
        //switch 문
        System.out.print("당신의 주민번호를 입력하세요.(011234-1111222)>>");
 
        Scanner scn2 = new Scanner(System.in);
        String regNo = scn2.nextInt();
 
        char gender = regNo.charAt(7);
        
        switch(gender) {
 
            case '1'case '3':
                System.out.println("당신은 남자");
                break;
            case '2'case '4':
                System.out.println("당신은 여자");
                break;
            default : 
                System.out.println("유효하지 않은 주민번호 입니다.");
        }
 
        //switch문 중첩
        System.out.print("당신의 주민번호를 입력하세요.(011234-1111222)>>");
        
        Scanner scn3 = new Scanner(System.in);
        String regNo3 = scn3.nextInt();
        char gender3 = regNo3.charAt(7);
        
        switch(gender3) {
            case '1'case '3':
                    
                    switch(gender3){
                        case'1' :
                        System.out.println("당신은 2000년 이전 출생 남자");
                        break;
                        case'3' :
                        System.out.println("당신은 2000년 이후 출생 남자");
                        break;
                    }                
 
            break;
            case '2'case '4':
 
                    switch(gender3){
                        case'2' :
                        System.out.println("당신은 2000년 이전 출생 여자");
                        break;
                        case'4' :
                        System.out.println("당신은 2000년 이후 출생 자");
                        break;
                    }
 
            break;
            default : 
                System.out.println("유효하지 않은 주민번호 입니다.");
        }
 
    }
}
cs
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] 제어구조 예제 6 - while문  (0) 2017.07.02
[JAVA] 제어구조 예제 5 - for문  (0) 2017.07.01
[JAVA] 제어구조 예제 3 - if문  (0) 2017.06.29
[JAVA] 제어구조 예제 2  (0) 2017.06.28
[JAVA] 제어구조 예제 1  (0) 2017.06.27
반응형

           

  JAVA Study





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class tistory {
 
    public static void main(String[] args) {
        int x = 0;
        System.out.printf("x=0 일때, 참인것은",x);
        
        if(x==0){
            System.out.println("x==0"); // 참
        }
        if(x!=0){
            System.out.println("x!=0"); // 거짓
        }
        if(!(x==0)){
            System.out.println("!(x==0)"); //거짓
        }
        if(!(x!=0)){
            System.out.println("!(x!=0)"); //참
        }
        
        x=1;
        System.out.printf("x=1 일때, 참인것은",x);
        
        if(x==0){
            System.out.println("x==0"); // 거짓
        }
        if(x!=0){
            System.out.println("x!=0"); // 참 
        }
        if(!(x==0)){
            System.out.println("!(x==0)"); // 참
        }
        if(!(x!=0)){
            System.out.println("!(x!=0)"); // 거짓
        }
    
    }
}
 
cs



 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
public class tistory {
 
    public static void main(String[] args) {
        
        //if 문
        int input;
        System.out.print("숫자를 하나 입력하세요.>");
        
        Scanner scn = new Scanner(System.in);
        String tmp = scn.nextLine(); //화면으로 입력받은 내용을 tmp에 저장
        input = Integer.parseInt(tmp); // 입력받은 문자열(tmp)을 숫자로 변환
    
        if(input==0){
            System.out.println("입력한 숫자는 0");
        }
        if(input!=0){
            System.out.printf("입력한 숫자는 "+input); 
        }
 
 
        //if-else 문        
        System.out.print("숫자를 하나 입력하세요>>");
        Scanner scn1 = new Scanner(System.in);
        int input1 = scn1.nextInt();
 
        if(input1==0){
            System.out.println("입력하신 숫자는 0 입니다.");
        } else{
            System.out.println("입력하신 숫자는 0이 아닙니다.");
        }
 
 
        //if-else-if 문
        int score = 0;
        char grade = ' ';
 
        System.out.print("점수를 입력하세요");
        Scanner scn2 = new Scanner(System.in);
        score = scn2.nextInt();
 
        if (score >=90){ 
            grade = 'A';    // score가 90 보다 같거나 크면 A
        } else if (score >=80){
            grade = 'B';    // score가 80 보다 같거나 크면 B
        } else if (score >=70){
            grade = 'C';    // score가 70 보다 같거나 크면 C
        } else if (score >=60){
            grade = 'D';    // score가 60 보다 같거나 크면 D
        } else {
            grade = 'F';    // 나머지는 F
        } 
        System.out.println(score+"점 으로 당신의 학점은"+grade+"입니다.");
 
        //중첩 if문
        int score1 = 0;
        char grade1 = ' ';
        char opt = '0';
        System.out.print("점수를 입력하세요");
        Scanner scn3 = new Scanner(System.in);
        score1 = scn3.nextInt();
        if (score1 >=90){ 
            grade1 = 'A';    // score가 90 보다 같거나 크면 A
            if (score1 >=98){
                opt = '+';    // 90이상 중 98이상은 A+
            } else if (score1 <94){
                opt = '-';    // 90이상 중 94미만은 A-
            }
 
        } else if (score1 >=80){
            grade1 = 'B';    // score가 80 보다 같거나 크면 B
 
 
        } else if (score1 >=70){
            grade1 = 'C';    // score가 70 보다 같거나 크면 C
 
 
        } else if (score1 >=60){
            grade1 = 'D';    // score가 60 보다 같거나 크면 D
 
 
        } else {
            grade1 = 'F';    // 나머지는 F
 
 
        } 
        System.out.println(score1+"점 으로 당신의 학점은"+grade1+opt+"입니다.");
 
    }
}
cs
반응형
반응형

           

  JAVA Study



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
public class tistory {
 
    public static void main(String[] args) {
        
        //3단 출력    
        for(int i=2; i<10; i++){
            System.out.println("3 * "+i+" = "+(3*i));
        }
        
        
        //한 line에 7개 씩 출력
        for(int a=1; a<=31; a++){
            System.out.print(a+"일");
            
            if(a%7==0){
                System.out.println();
            }
        }
        
        
        //if문을 switch문으로 바꾸기
        int a = 10;
        int b = 20;
        int result = 0;
        String value="*";
        
        if(value=="+"){
            result = a+b;
        } else if(value=="-"){
            result = a-b;
        } else if(value=="*"){
            result = a*b;
        } else{
            result = a/b;
        }
        System.out.println(result);
        
        int result2 = 0;
        String value2="+";
        switch(value2){
        case "+" : result2 = a+b;
        break;
        case "-" : result2 = a-b;
        break;
        case "*" : result2 = a*b;
        break;
        case "/" : result2 = a/b;
        break;
        default : result2 = 100;
        }
        System.out.println(result2);
        
        
        //1차원 배열 출력
        int[] bb = {11,12,13};
        for(int i=0; i<bb.length;i++){
            System.out.println(bb[i]);
        }
        
        
        //구구단 1~9단 출력
        for(int i=1; i<10; i++){
            for(int j=2;j<10;j++){
                System.out.println(i+"*"+j+"="+(i*j));
            }
        }
        
        
        //for 문을 이용한 출력
        int[][] numberB={{11,12,13},{71,72,73}};
        for(int i=0; i<numberB.length; i++){
            for(int j=0;j<numberB[i].length;j++){
                System.out.println(numberB[i][j]);
            }
        }
        
        
        //합을 구하시오
        int[][] numberC = {{11,12,13},{71,72,73}};
        int sum=0;
        for(int i=0; i<numberC.length; i++){
            for(int j=0;j<numberC[i].length;j++){
                sum += numberB[i][j];
            }
        }
        System.out.println(sum);
        
        
        //아래의 결과처럼 출력하시오
        //        (결과)
        //        1*
        //        4****
        //        5*****
        
        int[] arr={1,4,5};
        for(int i=0; i<arr.length; i++){
            System.out.print(arr[i]);
            
            for(int j=0; j<arr[i];j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
 
cs


반응형
반응형

           

  JAVA Study





- if문 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class tistory {
 
    public static void main(String[] args) {
        
        int a = 10;
        
        if(a==10){ 
            // a가 10과 같을 경우 블럭{} 안의 내용 실행
            System.out.println("a의 값은 10 입니다.");
        }
        
        String b = "success";
        
        if(b.equals("success")){
            // b가 success와 같을 경우 블럭 {} 안의 내용 실행
            System.out.println("b는 success입니다.");
        }
        
        String str1 = "good";
        String str2 = "good";
        
        if(str1.equals(str2)){
            System.out.println("같음"); // 같음 출력
        } else{
            System.out.println("다름");
        }
        
        
    }
 
}
cs



- if~else if 문


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class tistory {
 
    public static void main(String[] args) {
        
        int a = 10;
        if(a > 10){ 
            // a가 10보다 클 경우 블럭{} 안의 내용 실행
            System.out.println("a의 값은 10보다 크다.");
        } else if(a < 10){
            // a가 10보다 작을 경우 블럭{} 안의 내용 실행
            System.out.println("a의 값은 10보다 작다.");
        } else{
            // 위의 두 조건이 모두 거짓일 경우 실행
            System.out.println("a의 값은 10 이다.");
        }
//===============================================================                
        int b = 20;
        int c = 30;            
        if(b > c){ 
            // b>c가 참이면 블럭{} 안의 내용 실행
            System.out.println("b>c");
        } else if(b < c){
            // b<c가 참이면 블럭{} 안의 내용 실행
            System.out.println("b<c");
        } else{
            // 위의 두 조건이 모두 거짓일 경우 실행
            System.out.println("b=c");
        }
//===============================================================    
        String msg = "";
        int kor = 65;
        int eng = 70;
        
        if(kor>=60 && eng>=60){
            msg = "합격"// kor와 eng 모두 >=60 일경우 출력
        } else if(kor<60 && eng<60) {
            msg = "불합격"// kor와 eng 모두 <60 일경우 출력
        }
        else{
            msg = "재시험";
        }
        
        System.out.println(msg); //합격 출력    
    }
 
}
cs


 


- switch문


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class tistory {
 
    public static void main(String[] args) {
 
        String pgCode="a_102";
        String msg ="";
        
        switch(pgCode){
        
            case"a_101" : msg="java";
            break;
            
            case"a_102" : msg="jsp";
            break;
            
            case"a_103" : msg="php";
            break;
            
            default: msg="없음";
        }
        System.out.println(pgCode+":"+msg);
    }
}
cs



- for문


1
2
3
4
5
6
7
8
9
10
public class tistory {
 
    public static void main(String[] args) {
        
        for(int i=1; i<=12; i++){
            System.out.println(i+"월"); // 1월~12월
        }
    }
}
 
cs




- while문 


1
2
3
4
5
6
7
8
9
10
11
12
public class tistory {
 
    public static void main(String[] args) {
        int i = 1;
        while(i<=31){
            // i가 1부터 31까지 while문을 실행
            System.out.println(i+"일"); //1일 ~31일 출력
            i++
        }
    }
}
 
cs




반응형
반응형

           

  JAVA Study





- 제어문

: 프로그램의 흐름을 바꾸는 역할을 함

: 조건문과 반복문이 있음

: 조건문 ( if , switch) - 조건에 따라 문장이 수행됨

: 반복문 ( for, while, do-while ) - 특정 문장을 반복 수행


- if문

: if(조건식){ } 형태 - 조건식이 참일 경우 { }안의 내용을 수행

: 조건식의 결과는 반드시 true / false 여야함


- if-else문

: if문의 변형으로 'else블럭' 추가

: else블럭은 그밖의 다른 조건을 의미하며, if의 조건문이 거짓일 때 else블럭을 수행하라는 의미


- if-else if문

: 처리해야 할 경우의 수가 셋 이상인 경우 사용


if (조건식1){

// 조건식 1이 참일경우 실행

} else if(조건식 2){

//조건식 2가 참일경우 실행

} else {

//위의 어느 조건도 만족하지 못할 경우 실행

}


- 중첩 if문

: if문 블럭 내에 또 다른 if문을 포함시킴, 중첩 횟수에는 제한이 없음


if (조건식 1) {

// 조건식 1이 참일 경우 실행

if (조건식 2){

//조건식 1과 조건식 2가 모두 참일경우 실행

} else{

//조건식 1은 참, 조건식 2는 거짓일 경우 실행

}

} else{

//조건식 1이 거짓일 경우 실행

}


- switch문

: 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있음

: 조건식을 먼저 계산 후, 결과가 일치하는 case문으로 이동하여 실행 -> break;를 만나면 전체 switch문을 빠져나감


switch (조건식) {

case 값1: // 조건식 결과와 값1이 같을 때 실행

break; // case 값1이 실행될 경우 switch문을 빠져나감

case 값2: //조건식 결과와 값2가 같을 때 실행

break; //case 값2가 실행될 경우 switch문을 빠져나감

default : 

//조건식과 일치하는 case없을 경우 실행

//마지막에 작성되므로 break 없어도 됨

}


: switch문의 조건식의 결과값은 반드시 정수 또는 문자열이어야 함 -> case 값도 정수 또는 문자열이어야 함

: case값이 중복될 수 없음


- switch문 중첩

: 중첩가능, break;에 유의해 작성할 것


switch (조건식) {

case 값1: // 조건식 결과와 값1이 같을 때 실행

switch (조건식) {

case 값3 : 

break;

case 값4 :

break;

}

break; // case 값1이 실행될 경우 switch문을 빠져나감


case 값2: //조건식 결과와 값2가 같을 때 실행

break; //case 값2가 실행될 경우 switch문을 빠져나감


default : 

//조건식과 일치하는 case없을 경우 실행

//마지막에 작성되므로 break 없어도 됨

}


- for 문

: 반복 횟수를 알고 있을 때 적합


for (초기화 ; 조건식 ; 증감식) {   

// 조건이 참일 때 실행

}


: 조건식의 세가지 모두 생략 가능하며, 이 경우에는 조건식이 참으로 간주되어 무한반복되므로 특정조건을 만족하면 if문을 빠져나오게 해야 함 ( ex. for(;;) {----} )


- 중첩 for 문


- 향상된 for문

for ( 타입변수명 : 배열 또는 컬렉션) {

//반복할 문장

}

: 타입은 배열 또는 컬렉션의 타입과 일치

: 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용가능


- while문

while (조건식) {

// 조건식의 연산결과가 참인 동안 반복

}

: 조건식을 평가하여 조건식이 거짓이면 문장 전체를 벗어남 / 참일 경우 블럭 내 문장을 수행

: 조건식이 거짓이 될 때까지 반복

: 조건식 생략 불가


- do-while문

: 블럭 {}을 먼저 수행한 후 조건식을 평가

: 최소한 한번은 수행될 것을 보장함


do {

// 조건식 결과가 참일 때 수행

} while (조건식) ;


- break문

: 자신이 포함된 가장 가까운 반복문을 벗어남

: 주로 if문과 함께 사용되어 특정조건 만족 시 반복문을 벗어남


- continue 문

: 반복문 내에서만 사용가능

: continue를 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어감

: for문의 경우 증감식으로 이동, while/ do-while문의 경우 조건식으로 이동

: 반복문 전체를 벗어나지 앟ㄴ고 다음 반복을 계속 수행함


- 이름 붙은 반복문

: break는 근접한 하나의 반복문만 벗어날 수 있으므로, 중첩반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 건너뛸 수 있음


Look : for ( int i=0; i<9; i++ ) {

 for ( int j=0; j<9; j++ ) {

if (j==5){

break Look;

}

}



 자바의 정석 저자 강의


- 조건문과 반복문



반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] 제어구조 예제 2  (0) 2017.06.28
[JAVA] 제어구조 예제 1  (0) 2017.06.27
[JAVA] 연산자 예제  (0) 2017.06.25
[JAVA] 3. 연산자 (Operator)  (0) 2017.06.24
[JAVA] 2. 변수 (Variable)  (0) 2017.06.22
반응형

           

  JAVA Study






- 산술 연산

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class tistory {
    public static void main(String args[]{
 
        int a = 150;
        int b = 7;
 
        int c = a+b;
 
        System.out.println(c); //157
        
        System.out.println("result1 = " + (a+b)); // result1 = 157
        System.out.println("result2 = " + (a-b)); // result2 = 143
        System.out.println("result3 = " + (a*b)); // result3 = 1050
        System.out.println("result4 = " + (a/b)); // result4 = 21
        System.out.println("result5 = " + (a%b)); // result5 = 3
 
    }
}
 
cs



- 연결 연산자

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class tistory {
 
    public static void main(String[] args) {
        
        String color1 = "파랑";
        String color2 = "빨강";
        
        System.out.println("나는 "+color1+"색을 좋아한다."); // 나는 파랑 색을 좋아한다.
        System.out.println("신호등은 "+color2+"에서 멈춘다."); // 나는 빨강에서 멈춘다.
 
    }
 
}
 
 
cs



- 증감 연산 / 가감 연산

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class tistory {
 
    public static void main(String[] args) {
        
        int a = 1;
        
        ++a; //2
        a++//3
 
        System.out.println(a); //3
        
        int b = 5;
        
        --b; //4
        b--//3
        
        System.out.println(b); //3
    }
 
}
 
cs



- 대입 연산

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class tistory {
 
    public static void main(String[] args) {
        
        int a = 30;
 
        a+=5// 35
        System.out.println(a); //35
        
        a-=10// 25
        System.out.println(a); //25
        
        a*=2//50
        System.out.println(a); //50
        
    }
 
}
cs



- 삼항 연산자 (조건 연산자)


1
2
3
4
5
6
7
8
9
10
11
12
13
public class tistory {
 
    public static void main(String[] args) {
        
        String s1 = "apple";
        String s2 = "samsung";
    
        String s3 = (10%2 == 0)?s1 :s2; // 조건식 (10%2 == 0) 참일때 s1을 실행, 거짓일 때 s2를 실행
        System.out.println(s3); //apple
            
    }
 
}
cs



- 관계 연산자 (크기비교)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class tistory {
 
    public static void main(String[] args) {
        
        int num1 = 10;
        int num2 = 20;
        
        System.out.println(num1 +">" +num2 +"=" +(num1>num2)); //10>20 = false
        System.out.println(num1 +"<" +num2 +"=" +(num1<num2)); //10<20 = true
        System.out.println(num1 +">=" +num2 +"=" +(num1>=num2)); //10>=20 = false
        System.out.println(num1 +"<=" +num2 +"=" +(num1<=num2)); //10<=20 = true
        System.out.println(num1 +"==" +num2 +"=" +(num1==num2)); //10==20 = false
        System.out.println(num1 +"!=" +num2 +"=" +(num1!=num2)); //10!=20 = true
            
    }
 
}
cs



- 논리 연산자 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class tistory {
 
    public static void main(String[] args) {
        
        int num1 = 10;
        int num2 = 20;
        
        //And
        System.out.println(num1<num2 && num1!=num2); // true
        System.out.println(num1>num2 && num1!=num2); // false
        
        //OR
        System.out.println(num1<num2 || num1!=num2); // true
        System.out.println(num1>num2 || num1!=num2); // true
        System.out.println(num1>num2 || num1==num2); // false
 
        //NOT
        System.out.println(!(num1<num2)); // false
        System.out.println(!(num1>num2)); // true
        
    }
 
}
cs


반응형
반응형

           

  JAVA Study





1. 연산자(operator) 


- 연산을 수행하는 기호


- 연산자

: 연산을 수행하는 기호 ( +, -, *, /, % )


- 피연산자

: 연산자의 작업대상 ( 변수, 상수, 리터럴, 수식 )


- 연산자는 피연산자로 연산을 수행 후 항상 결과값을 반환


- 연산자의 종류

 종류

 연산자 

 설명 

 산술 연산자

    +        -        *         /       %      <<      >>

 사칙연산과 나머지 연산(%)

 비교 연산자

    >      <       >=       <=      ==       !=

 크고 작음, 같고 다름을 비교

 논리 연산자

   &&      ||       !      &       |       ^      ~

 'and'와 'or'로 조건 연결

 대입 연산자

   = 

 우변의 값을 좌변에 저장

 기타

   (type)             ? :               instanceof 

 형변환연산자, 삼항연산자, instanceof연산자



- 연산자의 우선순위

: 산술 > 비교 > 논리 > 대입

: 단항 > 이항 > 삼항

: 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽




2. 단항 연산자 
 

- 증감 연산자 

: ++  피연산자의 값을 1 증가

: --  피연산자의 값을 1 감소 

: 전위형 (++i) - 값이 참조되기 전에 증가

: 후위형 (i--) - 값이 참조된 후에 증가



3. 산술 연산자 

- 사칙 연산자 (+-*/)


- 나머지 연산자 (%)

: 나누는 수는 0을 사용할 수 없고, 피연산자로 정수만 허용
 


4. 비교 연산자 
 

- > 좌변 값이 크면 true 아니면 false


- < 좌변 값이 작으면 true 아니면 false


- >= 좌변 값이 크거나 같으면 true 아니면 false


- <= 좌변 값이 작거나 같으면 true 아니면 false


- == 두 값이 같으면 true 아니면 false


- != 두 값이 다르면 true 아니면 false


- 문자열의 비교

: equalse() 메서드 사용

 ( ex. 변수이름.equalse("abc"); )



5. 논리 연산자 
 

- || (or) 피연산자 중 어느 한쪽만 true이면 결과는 true


- && (and) 피연산자 양쪽모두 true이어야 결과는 true


- | (or 연산자) 피연산자 중 한쪽 값이 1이면, 1을 결과로 얻음, 그 외에는 0


- & (and연산자) 피연사 양 쪽 모두 1이어야 1을 결과로 얻음, 그 외에는 0


- ^ (xor연산자) 피연산자의 값이 서로 다를 때만 1을 결과로 얻음. 같을 때는 0


- ~ (비트 전환 연산자) 피연산자의 1의 보수를 얻을 수 있음, 부호있는 타입에서는 반대부호로 변경


- << ,  >> (쉬프트 연산자) 2진수로 표현된 피연산자의 각 자리를 오른쪽(>>), 왼쪽(<<)으로 이동함



6. 그 외의 연산자 


- ? / : (조건 연산자) 

: '(조건식) ? 식1 : 식2' 형식의 삼항 연산자, 조건식이 참일 경우 '?' 이하 식1을 실행, 거짓일 경우 ':' 이하 식2를 실행

: if 문으로 바꿔 사용가능


- = , op= (대입 연산자)

: 변수같은 저장공간에 값 또는 수식의 연산결과를 저장하는데 사용

: 오른쪽 피연산자 ( rvalue ) 의 값을 왼쪽 피연산자 ( lvalue ) 에 저장

: 대입 연산자는 다른연산자 ( op )와 결합하여 'op='형식으로 사용가능 ( ex. i = i+2; --> i+=2; )

: op=연산자는 반드시 공백없이 붙여써야 함  



 자바의 정석 저자 강의

- 연산자

반응형
반응형

           

  JAVA Study




1. 변수와 상수 
 

- 변수 (Variable)

: 단 하나의 값을 저장할 수 있는 메모리상의 공간

: 저장된 값이 변경될 수 있음


- 변수의 선언과 초기화

: 선언 방법 - 변수타입 + 변수이름; ( ex. int a; )

: 변수타입은 변수에 저장 될 값의 타입을 지정하는 것

: 변수이름은 변수에 붙인 이름

: 메모리에 변수와 같은 이름으로 지정된 값이 있을 수 있기 때문에 초기화를 해야함

: 초기화란 변수를 사용하기 전에 처음으로 값을 저장하는 것

: 변수에 값을 저장할 때는 '='을 사용 (ex. int a = 398; )

 

- 변수 값 출력 예제


public class tistory {


public static void main(String[] args) {

int coffee = 3000;

int cake = 5000;

System.out.println(coffee);

System.out.println(cake);


}


}


결과값 3000 / 5000 출력


- 변수 이름 규칙

: 프로그래밍에서 사용하는 모든 이름을 '식별자'라고 함

: 식별자는 같은 영역 내에서 구분가능해야 함

: 대소문자 구분됨, 길이 제한 없음

: 예약어 사용안됨

: 숫자로 시작하면 안됨

: 특수문자는 '_'와 '$'만 허용




2. 변수의 타입 
 

- 자료형은 사용하는 값의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것

- 자료형에는 문자형, 정수형, 실수형 등이 있음

- 변수 선언 시 알맞은 자료형을 변수의 타입으로 선택


- 기본형 변수는 실제 값을 저장

: 논리형 (boolean) 

: 문자형 (char)

: 정수형 (byte, short, int, long)

실수형 (float, double)


- 참조형 변수는 값이 저장된 주소를 저장


- 상수는 한번 저장하면 다른 값으로 변경할 수 없음

- 상수 선언 방법은 변수 타입 앞에 'final'을 붙여줌 ( ex. final int coffee =3000; )

- 상수이름은 암묵적으로 모두 대문자 사용 ( ex. final int COFFEE = 3000; )

- 이름이 여러 단어로 이루어져 있을 때 '_' 사용 ( ex. final int STARBUCKS_COFFEE = 3000; )


- 리터럴  상수와 변수의 값 ( 상수 스타벅스의 리터럴은 3000 )

- 리터럴 타입과 접미사

: 정수형타입과 실수형타입들을 구분하기 위해 리터럴에 접미사를 붙임

: long 타입 리터럴에는 접미사 'L', float 타입 리터럴에는 접미사 'f', double 타입 리터럴에는 접미사 'd'를 붙임

 ( ex. long cream = 50_000_000_000L;  float cream2 = 2.14f;  double cream3 = 2,345d; )

- 타입 불일치

: 저장범위가 넓은 타입에 좁은 타입 값을 저장하는 것은 허용됨


- 문자 리터럴 , 문자열 리터럴

: 'A'같이 작은 따옴표로 문자 하나를 감싼 것이 문자 리터럴

: "ABC"두 문자 이상은 큰따옴표 사용한 문자열 리터럴

: ""안에 아무 것도 넣지 않은 빈 문자열을 허용


- printf() 

: 지시자를 통해 값을 어떻게 출력할 것인지 지정해주는 역할

( ex. '%d' - 정수형 변수에 저장된 값을 10진수로 출력할 때 )


- Scanner()

: 화면에서 입력받을 때 사용됨

: import.java.util.*; //Scanner 클래스 사용위해 추가

: Scanner test = new Scanner(System.in); //Scanner 클래스 객체 생성

: int num = test.nextInt(); //입력받은 정수를 변수 num에 저장

: 실행 후 콘솔창에 숫자 입력



- 변수 타입에 따른 기본값


자료형 

기본값 

 boolean

false 

 char

'\u0000' 

 byte, short, int

 long

0L 

 float

0.0f 

 double

0.0d 또는 0.0 

참조형 변수 

null 




3. 기본형(primitive type) 
 

- boolean (논리형)

: true,false 값만 가지는 변수

: default = false


- char (문자형)

: 단 하나의 문자를 저장

: 특수문자 표현


 특수 문자

문자 리터럴 

 tab 

 \t

 backspace

 \b

 form feed

 \f 

 new line

 \n 

 carriage return

 \r 

 역슬래쉬(\)

 \\ 

 작은따옴표

 \' 

 큰따옴표

 \" 

 유니코드 (16진수) 문자 

 \u 유니코드 ( ex. char a='\u0041' ) 


-byte, short, int, long (정수형) 

: 정수형 크기 순서 byte < short < int < long


- float, double (실수형)

: 실수형에서는 오버플로우 발생시 변수의 값은 무한대가 됨

: 언더플로우가 발생하면 변수의 값은 0이 됨


4. 형변환  (casting)
 

- 서로 다른 타입간의 연산을 수행하기 위해 값들의 타입을 일치시키는 것

- 형변환 방법

: 변환하고자 하는 변수나 리터럴 앞에 변환하고자 하는 타입을 작성 ( ex. (타입)피연산자 )


- 자동 형변환

: 기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환 됨


- boolean을 제외한 나머지 7개의 기본형은 서로 형변환 가능

- 기본형과 참조형은 서로 형변환할 수 없음

- 서로 다른 타입의 변수간 연산은 형변환을 하는 것이 원칙이나, 값의 범위가 작은 타입->큰 타입이라면 생략가능 



 자바의 정석 저자 강의

- 변수의 선언


- 변수의 타입




- 상수와 리터럴




- printf()와 Scanner ( 형식 출력과 화면 입력 )



반응형

+ Recent posts