Sesac 5일차

SungMin·2022년 10월 13일
0

Sesac-Java/Spring

목록 보기
1/13

변수

변수(variable)

  • 값을 저장할 수 있는 메모리상의 공간
  • 변수의 값은 변경될 수 있으며, 단 하나의 값 만을 저장
  • 객체의 상태를 나타내는 속성
package kr.ac.sesac.exam03;

public class Ex01 {

	public static void main(String[] args) {
		// 변수
		// 값을 저장할 수 있는 메모리상의 공간
		// 타입명 변수명 = 할당할 값;
		int age = 10; // 변수 생성 + 값 할당
		int age2; // 변수만 생성
//		System.out.println(age2); 	-> 변수를 초기화 하지않고 사용하면 에러 발생
		
		// 변수 생성 규칙
		// 첫 번째 글자는 소문자 혹은 _ 혹은 $로 시작
		// tire, age, sportsCar, _str, $num
		// 대소문자 구분이 필수
		// firstname =/= firstName
		// 합성어일경우(단어+단어) 두 번째 단어의 첫 글자를 대문자로 작성
		// myName, sportsCar
		// 예약어는 사용 불가
		
		// 변수에 값 할당
		age2 = 20; // 미리 선언되어 있는 변수를 사용할 때는 타입명 생략
		
		System.out.println(age2); 
		
		// 변수선언 + 변수사용
		// 타입이 정수인 변수 today에 오늘 날짜(yyyy.mm.dd)를 입력하고, 콘솔창에 출력해봅시다.
		int today = 20221011;
		System.out.println(today);
		System.out.println("오늘 날짜는? "+today);
		
		// 변수 선언 + 사용 2
		int num = 1;
		int num2 = 2;
		// num의 값에 num2를 입력
		// 기존의 num의 값인 1은 사라짐
		num = num2;
		System.out.println("num : "+num);
	}

}

변수 기본 자료형

public class Ex02 {

	public static void main(String[] args) {
		// 타입
		// 기본자료형
		// 논리(참 또는 거짓), 문자(한글자), 정수(1,2,...), 실수(1.1, 1.2...)
		boolean isTrue = true;
		isTrue = false;
		
		char ch = 'A'; // 글자 하나만 표현 가능, 작은따옴표로 표현
		byte bt = 10;
		short shrt = 100;
		int i = 1000;
		long lng = 10000;
		
		float flt = 1.1f;
		double dble = 123.123;
		
		// 참조자료형
		// 기본형을 제외한 나머지 타입
		String str = "문자열 표현 가능"; // 참조형의 대표적인 예시 String(문자열)타입
		
		// 각각 변수의 값에 맞는 타입을 붙여봅시다.
		boolean a = false;
		char b = 'a';
		short c = 20;
		long d = 100L;
		float e = 1.2f;
		double f = 1.3;
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(e);
		System.out.println(f);
		System.out.println(str.getClass().getName()); // 참조자료형에서 타입 확인
		
		// 형변환
		// 값의 타입을 다른 타입으로 변환
		// 기본자료형 : Boolean을 제외한 나머지 7개 타입은 서로 형변환 가능
		// 참조자료형 : 같은 타입(상속)인 경우 형변환 가능 -> 업 캐스팅, 다운 캐스팅
		
		byte small = 10;
		int big;
		big = small; // 자동 형변환
		
		byte small2;
		short big2 = 1000;
		small2 = (byte) big2; // 강제 형변환
		
		System.out.println(big);
		System.out.println(small2);

	}

}

형변환(Casting)

  • 값의 타입을 다른 타입으로 변환 ex) int -> str

자동 형변환

  • 작은 타입은 큰 타입으로 자동 변환 가능

강제 형변환

  • 큰 타입을 작은 타입으로 강제 변환
  • 값 손상 가능해서 권장하지 않음

연산자(Operations)

  • 연산에 사용되는 표시나 기호

연산자 종류

연산자 우선순위

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

단항연산자, 이항연산자, 삼항연산자

package kr.ac.sesac.exam03;

import java.util.Scanner;

public class Ex03 {
	//주석 단축기 : ctrl + /

	public static void main(String[] args) {
		// 연산자
		// 단항 연산자
		int a = 10;
		
		a = -a; // 양수를 음수로 변경
		System.out.println(a);
		
		boolean b = true;
		b = !b; //b값의 논리 부정
		System.out.println(b);
		
		int c = 10;
		int c2 = ++c; // 증가를 시키고 참조
		int c3 = c++; // 참조를 한 후에 증가
		System.out.println("전위 연산"+c2);
		System.out.println(c);
		System.out.println("후위 연산"+c3);
		System.out.println(c);
		
		// 이항연산자
		int i = 1;
		int i2 = 2;
		int i3 = i + i2;
		System.out.println(i3);
		
		// %연산자 : 나머지 값을 구하는 연산자
		int i4 = 30/3;
		int i5 = 30%4; // 몫이 10이고 나머지는 2
		System.out.println(i4);
		System.out.println(i5);
		
		// 대입연산자 +=
		int z1 = 0;
		z1 = z1 + 1;
		z1 += 1; // z1 = z1 + 1와 같은 뜻
		
		// 비교
		int y1 = 3;
		int y2 = 3;
		boolean result = y1 > y2; // 3=3 고로 결과값은 false
		System.out.println(result);
		result = y1 == y2; //y1과 y2가 같으면 true, 같지 않다면 false
		System.out.println(result);
		
		// 삼항연산자
		// (조선식) ? true일때 : false일때
		int x1 = 3;
		boolean x2 = x1 == 3 ? true : false;
		String x3 = x1>0 ? "0보다 크다" : "0보다 작다";
		System.out.println(x2);
		System.out.println(x3);
// alt + 화살표 위아래 : 해당라인을 한줄씩 이동
// ctrl + d : 한줄씩 제거
// ctrl +shift + f : 소스코드 정리
// shift + tab : 들여쓰기 앞으로
		if(x1 > 1) {
			// x1 > 1 일때 (참일때)
			System.out.println("1보다 크다");
		} else {
			System.out.println("1보다 크다");
		}
		
		// 논리합, 논리곱
		boolean b1 = true;
		boolean b2 = false;
		boolean b3 = b1 || b2;
		System.out.println("논리연산자 || 결과값은 : "+b3);
		if(0>1 || 2>1) {
			// 0이 1보다 크거나(false) (or) 2가 1보다 클때(true)
			System.out.println("결과는 true");
		}
		
		// 수학, 영어, 국어 성적의 합과 평균을 구해보고, 콘솔에 출력 해봅시다.
		// 변수명 수학 = math, 영어 = eng, 국어 = kor
		// 성적은 임의로 지정
		int math = 50;
		int eng = 90;
		int kor = 87;
		// 성적 합계
		int sum = math + eng + kor;
		// 성적 평균
		float avg = (float)sum / 3;
		// 합계 구하는 소스
		// 평균 구하는 소스
		System.out.println("성적 합계 : "+sum+" 성적 평균 : "+avg);
		
		int score = 0;
		// 단어 + ctrl + space = 자동완성
		System.out.print("성적 입력 : "+score);
		// ctrl + shift + o : 임포트
		Scanner scan = new Scanner(System.in);
		score = scan.nextInt();
		
		System.out.println("성적은 : "+score);
		// 입력받은 성적이 90점 이상이면 'A'를 출력 그렇지 않다면 'B'를 출력하시오.
		// 삼항 연산자를 활용
		// 삼항연산자 응용
		// 80점 이상이면 'B', 그렇지 않으면 'C'를 출력하도록 수정해봅시다.
		char grade = score>=90 ? 'A' : (score >=80 ? 'B':'C');
		System.out.println("성적 등급은 : "+grade);
		
		// %연산자 활용 + 삼항연산자
		// 정수타입 변수 num이 홀수인지 짝수인지 구분하여 출력하시오.
		int num = 10;
		System.out.println(num % 2 == 0 ? "짝수" : "홀수");

	}

}

조건문과 반복문

조건문

  • if문, switch문

if문

package kr.ac.sesac.exam03;

public class Ex04 {

	//파일 저장할때 : ctrl + s -> 현재 파일 저장
	// ctrl +shift + s -> 전체 파일을 저장
	public static void main(String[] args) {
		// 조건문 - if 문
		// if(조건식){수행문}
//		int a = 3;
//		boolean t = true;
////		if(a > 5) {
////			// if문 괄호안에 연산식 혹은 변수가 true일 때 수행된다.
////			// a가 5보다 크다(true일때) 수행
////			System.out.println("a는 5보다 큽니다.");
////		} else {
////			// if문 괄호안에 연산식 혹은 변수가 false일 때 수행된다.
////			System.out.println("a는 5보다 작습니다.");
////		}
////		System.out.println("수행완료");
//		
//		//if , else, else if 문
//		a = 1;
//		if(a > 5) { // 조건식 1
//			// if문 괄호안에 연산식 혹은 변수가 true일 때 수행된다.
//			// a가 5보다 크다(true일때) 수행
//			System.out.println("a는 5보다 큽니다.");
//		} else if (a>2){ // 조건식 2
//			// if문 괄호안에 연산식 혹은 변수가 false이고,
//			// else if 괄호안에 연산식 혹은 변수가 true일 때 수행된다.
//			System.out.println("a는 5보다 작고, 2보다 큽니다.");
//		} else if (a>0){ // 조건식 3
//			// 조건식 1과 2가 모두 거짓이고
//			// 조건식 3이 참일 때 수행된다.
//			System.out.println("a는 2보다 작고, 0보다 큽니다.");
//		} else { // 조건식 4
//			// if문 괄호안에 연산식 혹은 변수가 false일 때 수행된다.
//			System.out.println("a는 0보다 작습니다.");
//		}
		
		// 중첩 if 문 - if문 안에 if문이 중첩된 형태
		int a = 21;
		if(a > 10) {
			// a가 10보다 클 때 수행
			System.out.println("a는 10보다 클 때 수행");
			if(a > 20) {
				System.out.println("a는 20보다 클 때 수행");
			} else {
				System.out.println("a는 10보다 크지만, 20보다 작다.");
			}
		} else {
			// a가 10보다 크지 않을 때 수행
			
		}
		System.out.println("수행완료");
		

	}

}

switch문

package kr.ac.sesac.exam03;

public class Ex05 {
	
	public static void main(String[] args) {
		// 조건문 - switch문
		int a = 5;
		switch(a) { // 조건괄호에 변수가 들어온다.
			case 1 : // case 키워드 다음에 비교할 값을 명시해준다.
				System.out.println("[1]a는 1입니다.");
				break; // *주의* break가 없으면 다음 case도 실행된다.
			case 5 :
				System.out.println("[2]a는 5입니다.");
				break;
			case '5' :
				System.out.println("[3]a는 '5'입니다.");
				break;
			default :
				System.out.println("[4]a에 해당하는 case가 없습니다.");
		}
		
		String str = "cde";
		switch (str) {
			case "abc" :
				System.out.println("abc입니다.");
				break;
			case "cde" :
				System.out.println("cde입니다.");
				break;
			default :
				System.out.println("해당하는 케이스가 없습니다.");
			}
	}
	

}
profile
초보 개발자의 학습 저장용 블로그

0개의 댓글