C언어와 비슷한 문법!

 

1. if-else문

public class Nested {
	public static void main(String[] args) {
    
    	Scanner sc = new Scanner(System.in);
        System.out.print("정수 입력: ");
        int num = sc.nextInt();
        
        if (num > 0)
        	System.out.println("양수");
        else if (num == 0) 
        	System.out.println("0");
        else
        	System.out.println("음수");
            
    }
}

 

2. switch문

- 제어식에 숫자, 문자, 문자열 가능

 

import java.util.*;

public class Score2Grade {
	public static void main(String[] args) {
    	int score, num;
        char grade;
        
        Scanner sc = new Scanner(System.in);
        System.out.print("성적 입력: ");
        score = sc.nextInt();
        num = score / 10;
        
        switch(num) {
        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';	break;
        }
        System.out.println("학점: " + grade);
    }
}
switch(num) {
	case 10:
	case 9:    return 'a';
    
	case 10, 9 ->    return 'a';
}

// 둘 다 가능

 

3. for문

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

   }

public class Sum {
	public static void main(String[] args) {
    	int sum = 0;
        
        for (int i = 1; i <= 10; i++) {
        	sum += i;
        }
        
        System.out.println("1부터 10까지의 정수의 합 = %d" + sum)l     
    } 
}

 

4. while문

- while (조건식) {

  }

import java.util.Scanner;

public class GetSum {
	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        
        int sum = 0, value = 0;
        
        while (value != -1) {
            sum += value;
            System.out.print("정수 입력: ");
            value = sc.nextInt();
        }
        System.out.println("정수의 합은 " + sum + "입니다.");
    }
}

 

5. do-while문

- 조건이 참인 동안 do 안의 문장 반복

- 우선 do 문장 한 번 실행하고 조건 확인

import java.util.Scanner;

public class CheckInput {
	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        int month;
        do {
            System.out.print("올바른 월을 입력하세요 [1-12]: ");
            month = sc.nextInt();
        } while (month < 1 || month > 12);
        System.out.println("사용자가 입력한 월은 " + month);
    }
}

 

6. break, continue

- break: 반복문을 벗어남

- continue: 해당 반복을 멈추고 다음 반복으로 넘어감

 

7. 무한루프

- while문에서 종료 조건을 만들기 까다로운 경우 while(true)를 이용한 후 그 안에서 break문으로 반복을 빠져나가는 것이 좋음


8. 배열 선언과 사용

- 자바에서 배열은 객체

// 배열 생성
int[] s = new int[10];

// 배열 채우기
for (int i = 0; i < s.length; i++) {
	s[i] = i;
}

// 배열 출력
for (int i = 0; i < s.length; i++) {
	System.out.print(s[i] + " ");
} 
// 0 1 2 3 4 5 6 7 8 9

- 배열의 크기: s.length

// 배열 초기화
int [] scores = {10, 20, 30, 40, 50};

 

9. for-each 루프

int[] list = {1, 2, 3, 4, 5};

for (int e : list) {
	System.out.println(e);
}
// 배열 전부 출력

 

10. 2차원 배열

// 2차원 배열 생성
int[][] s = new int[3][5];

// 2차원 배열 초기화
int[][] testArray = {
	{10, 20, 30, 1, 2},
	{40, 50, 60, 3, 4},
	{70, 80, 90, 5, 6}
};

// 2차원 배열 출력
for (int i = 0; i < 3; i++) {
	for (int j = 0; j < 5; j++) {
    	System.out.println(s[i][j]);
    }
}

 

11. 래그드 배열

int[][] ragged = new int[MAX_ROWS + 1][];

for (int r = 0; r <= MAX_ROWS; r++)
	ragged[r] = new int[r+1];

 

public class RaggedArray {
	public static void main(String[] args) {
    	int[][] ragged = new int[3][];
        ragged[0] = new int[1];
        ragged[1] = new int[2];
        ragged[2] = new int[3];
        
        for (int r = 0; r < ragged.length; r++) {
            for (int c = 0; c < ragged[r].length; c++)
            	ragged[r][c] = c;
        }
    }
}

 

12. ArrayList

- 배열의 크기 동적 변경하면서 사용 가능

ArrayList<String> list;    // list: 문자열을 저장하는 ArrayList 참조 변수 선언
list = new ArrayList<>();  // ArrayList 생성

list.add("Apple");
list.add("Grape");
import java.util.*;

public class ArrayListTest {
	public static void main(String[] args) {
    	ArrayList<String> list = new Arraylist<>();
        list.add("Anna");
        list.add("Mike");
        list.add("Joy");
        list.add("Lina");
        for (String obj : list)
        	System.out.print(obj + " ");
    }
}
// Anna Mike Joy Lina

'Software > JAVA' 카테고리의 다른 글

[JAVA] Day5. 상속  (0) 2022.12.29
[JAVA] Day 3-4. 클래스와 객체  (2) 2022.12.29
[JAVA] Day1. 자바 기초  (0) 2022.12.27
[JAVA] 예외처리  (0) 2021.07.22
[JAVA] 객체지향  (0) 2021.07.22

1. 변수

변수는 프로그래밍에서 값(data)을 저장하기 위해 선언하는 것이다.

 

<특징>

1) 변수의 이름은 알파벳, 숫자, _ , $ 으로 구성된다.

2) 변수는 대소문자를 구분한다. 

3) 변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다.

4) 이름 사이에 공백이 있으면 안된다.

5) 변수명을 정할 때에는 변수의 역할에 어울리는 의미 있는 이름을 지어야 한다.

 

2. 자료형

 

  정수형 문자형 실수형 논리형
1 byte byte     boolean
2 byte short char    
4 byte int   float  
8 byte long   double  

 

변수가 저장되는 공간의 특성에 따라 자료형을 사용하여 변수를 선언해야 한다. 

그리고 변수를 선언하는 동시에 초기화해주는 것이 좋다.

ex) int num;

     float average = 0.2f;

 

3. 상수

상수는 변하지 않는 값을 선언하는 것이다.

상수를 선언할 때에는 변수 선언 앞에 final 키워드를 붙이면 된다.

ex) final double PI = 3.14;

     final int MAX_NUM = 100;

 

**max num을 변수와 상수로 정의할 때

변수 → int maxNum;

상수 → final int MAX_NUM;

 

이렇게 변수는 소문자로, 띄어쓰기 해야 할 부분을 대문자로 적어주고,

상수는 모두 대문자로 적고 띄어쓰기 해야 할 부분에 언더바( _ )를 적는다.

 

4. 리터럴

리터럴은 프로그램에서 사용하는 모든 숫자, 값, 논리값을 말한다.

예를 들면 10, 3.14, 'A', true 등이 있다.

리터럴에 해당하는 값은 특정 메모리 공간인 상수 풀 (constant pool)에 있으며 필요한 경우 여기서 가져와서 사용된다.

 

5. 형 변환

자료형은 각각 사용하는 메모리의 크기와 방식이 다르기 때문에 서로 다른 자료형의 값이 대입되는 경우 형 변환이 일어난다.

 

1) 묵시적 형 변환

작은 수에서 큰 수로, 덜 정밀한 수에서 더 정밀한 수로 대입되는 경우 자동으로 형 변환이 일어난다.

ex) long num = 3;  // long은 8byte 정수이고, 3은 4byte 정수인 int타입이다. long이 더 크기 때문에 3 뒤에 L을 명시할 필요가 없다.

 

2) 명시적 형 변환

묵시적 형 변환의 반대의 경우로, 변환되는 자료형을 명시해야 한다. 이때 자료의 손실이 발생할 수 있다.

ex) double dNum = 3.14;

     int num = (int) dNum;   // double이 실수형으로 정수형인 int보다 더 정밀하기 때문에, double타입인 dNum을 int타입인 num에 대입할 경우 dNum 앞에 (int)를 명시해야 한다.

 

6. 기본 연산자

 

대입 연산자 변수에 값을 대입 num = 10;
단항 연산자 항이 한 개 ++num;
이항 연산자 항이 두 개 num1 + num2;
삼항 연산자 항이 세 개 (5 > 3) ? 1 : 0;

 

  • 대입 연산자: 변수의 값을 대입하는 연산자로, 우선순위가 가장 낮다.
  • 부호 연산자: 양수 / 음수를 표현하거나 값의 부호를 변경한다. 변수 앞에 +, -를 사용한다고 해서 변수의 값이 변하는 것은 아니다. 변수의 값을 변경하려면 대입 연산자로 값을 변경해야 하고, 부호 연산자는 그 단계에서의 부호만 바꿔줄 뿐이다.
  • 산술 연산자: 사칙연산에 사용되는 연산자이다.

 

**사칙 연산자: +, -, *, /

** %는 나머지를 구하는 연산자 숫자 n의 나머지는 0 ~ n-1 범위의 수이므로 특정 범위 안의 수를 구할 때 자주 사용한다.

'Software > JAVA' 카테고리의 다른 글

[JAVA] 3의 배수의 합 구하기  (0) 2021.01.11
[JAVA] 클래스와 객체  (0) 2021.01.10
[JAVA] 조건문, 반복문  (0) 2021.01.10
[JAVA] Eclipse 단축키  (0) 2021.01.10
[JAVA] Eclipse 설치  (0) 2021.01.10

+ Recent posts