Java - 변수, 연산자, 조건문,반복문

박연주·2022년 5월 16일
0

Java

목록 보기
1/17

Java

객체 지향적 프로그래밍 언어

  • Wirte Once, Run Anywhere
    (자바로 개발된 프로그램은 자바 실행환경 JRE가 설치된 모든 환경에서 실행 가능)
  • 언어가 달라도 실행환경은 자바의 구동환경인 JVM에서 동작하는 언어들이 많음
  • JVM내의 Heap이라는 메모리 공간을 운영체제로부터 할당받아 사용
  • 항상 Main 함수부터 실행(public class Main{})

자바를 사용하는 곳
1. 백엔드 서버 개발
2. 데이터 엔지니어링
3. 하드웨어 실행환경에 구애받고 싶지 않은 모든 곳


변수와 상수

  1. 변수 : 어떠한 데이터를 저장하기 위한 메모리 공간의 이름, 지속적으로 변경 가능(최종적으로 마지막 값으로 인식)
  2. 상수 : 중간에 값이 변할 수 없으며 초기값을 끝까지 사용
public class Main {  // 항상 main 함수부터 실행
	public static void main(String[] args) {
    	System.out.println("Hello World");  // println 출력이후 줄바꿈
    }
}

// public static void 
// public : 메소드가 표시되고 다른 유형의 다른 객체에서 호출 될 수 있음을 의미
//			(다른 객체에서 액세스 가능)
// static : 메서드가 해당 클래스의 특정 인스턴스가 아니라 클래스와 연결되어 있음을 의미. 
//			즉, 클래스의 객체를 만들지 않고 정적 메서드를 호출 할 수 있음
//			(함수가 호출되지 전 클래스가 상주하는 클래스를 먼저 인스턴스화 할 필요 없음)
// void : 메서드에 반환 값이 없음을 의미(함수가 값을 반환하지 않음)

# 변수
int num = 5; // 정수형 변수 선언
String sparta = "Hello World"  // 문자형 변수 선언
System.out.println(sparta)  // Hello World

# 상수
final int num2 = 10;   // 상수형 변수 선언(final로 선언 가능)
System.out.println(num2);
num2 = 50;   // compile error, 상수는 처음 할당된 값을 끝까지 사용해야 함.

	  final    int     num2  =  10;
// 접근제어자 변수의자료형 변수의 이름 = 값

자료형

  1. 기본자료형 (Primitive Type)
  2. 참조 자료형(Reference Type) : 기본형이 아닌 것, 자바의 인스턴스를 가리킬 수 있는 자료
# 기본자료형 : 숫자, 문자, boolean, byte
# 숫자
public class Main {
    public static void main(String[] args) {
        short s = 1;
        System.out.println(s);

        int a = 3;
        System.out.println(a);

        float f = 5.5F;
        System.out.println(f);

        double d = 5.5; // 더 큰 범위의 소수
        System.out.println(d);

        System.out.println(Short.MAX_VALUE);
        System.out.println(Short.MIN_VALUE);
    }
}

// > Task :Main.main()
// 1   3   5.5   5.5
// 32767   -32768

# 문자
public class Main {
    public static void main(String[] args) {
        char c = 'A';
        System.out.println(c);  // 글자 하나 not ABC

        byte data = 'd';   // 아스키코드로 100, 바이트형태로 보여줌
        System.out.println(data);
    }
}
// > Task :Main.main()
// A   100

참조형

# 배열
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
         String sparta = "Hello Sparta";
         System.out.println(sparta);

         int[] intEmptyArray = new int[5];  // size 5
         System.out.println(Arrays.toString(intEmptyArray));

         int[] intArray = new int[] {1, 2, 3, 4, 5}; // int 배열 선언과 동시에 초기화하여 값 입력
         System.out.println(Arrays.toString(intArray));

         String[] stringEmptyArray = new String[5];  //  참조형은 기본 값이 없음 , 그래서 null
         System.out.println(Arrays.toString(stringEmptyArray));

         String[] season = {"봄", "여름", "가을", "겨울"};
         System.out.println(Arrays.toString(season));
    }
}
// Task :Main.main()
Hello Sparta
[0, 0, 0, 0, 0]
[1, 2, 3, 4, 5]
[null, null, null, null, null]
[, 여름, 가을, 겨울]


# 연습
// 3개짜리 배열에 {10, 20, 30} 을 넣고 마지막 값을 출력
public class Main {
    public static void main(String[] args) {
         int[] intArray = new int[] {10, 20, 30};
         System.out.println(intArray[intArray.length -1]);
    }
}

조건문

# if
public class Main {
  public static void main(String[] args) {
      int num1 = 150;
      int num2 = 100;
      if (num1 > num2) {
          System.out.println("100보다 큰 수입니다");
      } else {
          System.out.println("100보다 작은 수입니다.");
      }
  }
}

# switchchar score = 'A';
switch (score) {
    case 'A':
        System.out.println("A등급입니다.");
        break;		// 해당하는 case의 코드를 실행 후, switch문 밖으로 나가게 해줌
    case 'B':
        System.out.println("B등급입니다.");
        break;
    case 'C':
        System.out.println("C등급입니다.");
        break;
    default:
        System.out.println("C등급보다 낮은 등급입니다.");
        break;
}

# 삼항연산자
int a = 5;

String reuslt = (a < 10) ? "10보다 작습니다." : "10보다 큽니다.";
System.out.println(reuslt);

# 예시
// 받은 값에 따라 등급 나누기
import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);  // system input을 받을거야
      int score = sc.nextInt();  //  다음에 들어오는 숫자를 받을거야
      if (score > 90 ) {
      	System.out.println("A")
      } else if (score > 80) {
      	System.out.println("B")
      } else {
      	System.out.println("C")
      }
  }
}

반복문

# for
public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for ( int i=0; i < 10; i++) {
            sum += (i + 1);
        }
        System.out.println(sum);
    }
} 55


# for, each문 : 결과값이 따로따로 나옴
public class Main {
    public static void main(String[] args) {
		String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
		
        for (String day : days) {
    		System.out.println(day);
		}
    }
}
// > Task :Main.main()
Monday   Tuesday    Wednesday    Thursday
Friday   Saturday   Sunday


# While
public class Main {
    public static void main(String[] args) {
    	int i = 0;
        while (i < 10){
            if (i==5){
                break;
            }
            i += 1;
        }							// 5일 때 멈춤
        System.out.println(i);      -> 10  
    
        int i=0;
        int sum=0;
        while (i<10) {
            if (i == 4) {
                i++;
                continue;   // 밑에 블럭을 한 번 스킵하고 다시 올라가서 진행
            }				// break 였다면 바로 멈춤
            sum += (i+1);
            i++;

        }
        System.out.println(sum);    // i = 4 일때, 5 안더해줌 
    }							     -> 50
}


# do-while : 코드블럭을 무조건 한 번 실행한 후, While문의 조건을 비교
int i = 1;
int result = 0;
do {
    result += i;
    i += 1;
} while (i < 2);
System.out.println(result);

# 예시 (반복문, 조건문)
1- 30 중에 짝수끼리만 더하고 홀수끼리만 더한 값
public class Main {
    public static void main(String[] args) {
        int sumOdd = 0;
        int sumEven = 0;
        for (int i=0; i<30; i++) {
            int value = i +1;
            if (value % 2 == 0) {
                sumEven += value;
            } else {
                sumOdd += value;
            }
        }
        System.out.println("even : " + sumEven);
        System.out.println("odd : " + sumOdd);
    }
}
profile
하루에 한 개념씩

0개의 댓글