[JAVA] 형변환, 연산자, 조건문

SOYEON JEONG·2023년 3월 19일
0
post-thumbnail

단축키 모음

CTRL + SHIFT + Oimport 대상 전체
Scanner 뒤에 CTRL + spacebarjava.util.Scanner
CTRL + F11이클립스 실행

Close All : 이클립스 모든 클래스 창 끄기


형변환

1. 자동 형변환

💡 정수 + 정수 = 정수
정수 + 실수 = 실수
문자 + 정수 = 정수
    System.out.println(3 + 0.0);
    //3.0
    System.out.println(5 / 2);
    //2
    System.out.println(5 / 2.0);
    //2.5
    System.out.println('A' + 3);
    //68

2. 강제 형변환

💡 (자료형) 값;
    System.out.println((double)3);

아스키코드 - 암호화, 복호화

+변수 선언 시 하나의 타입 그리고 한 줄에 만드는 것이 좋다.

문자열 형변환

  1. 다른 자료형을 문자열로

    문자열과 다른 일반 자료형을 연결하면 결과는 문자열이 된다.

    <System.out.println("1" + 3 + 8);
    // "1" + 3 + 8 => "13" + 8 => "138"
    System.out.println("1" + (3 + 8));
    // "1" + (3 + 8) => "1" + 11 => "111"
  2. 문자열을 다른 자료형으로

    일반 자료형 일반 자료형끼리만 형변환이 가능하다.
    문자열 타입은 클래스 타입이므로, 일반 자료형의 클래스 타입의 도움을 받아야 한다.

    💡 Interger.parseInt("") => 문자열에서 변환된 정수 값 Float.parseFloat("") => 문자열에서 변환된 실수 값 Double.parseDouble("") => 문자열에서 변환된 실수 값

출력 변수 자료형 형변환

입력

커서가 깜빡이고 있는 상태.
입력하기 전에 출력을 통해 어떤 값을 입력해야 할지 사용자에게 알려줘야 한다.

입력 클래스

입력 메소드

next() : 사용자가 입력한 문자열 값

  • 사용자가 입력한 값 중 공백 또는 줄 바꿈 문자로 구분하여 각 문자열을 분리한다.
  • 첫 번째 문자열은 첫 번째 next()에 담고, 두 번째 문자열은 두 번째 next()에 담는다.
💡 초기값 : 아직 어떤 값을 넣을 지 모를 때 넣는 값

정수 : 0

실수 : 0.0

문자: ‘ ‘(공백)

문자열 : null / 경우에 따라 “ “(빈 문자열)을 사용하기도 함.

Scanner sc = new Scanner(System.in);
String name = null; // 초기화

System.out.print("이름: ");
name = sc.next(); // 코드 재사용
System.out.println(name + "님");

nextLine() : 사용자가 입력한 문자열 값

  • 공백 또는 줄 바꿈 문자도 값으로 취급하기 때문에 그대로 입력 받는다.

실습 - 쪼개서 생각하기, 배운 것에서 최대한 가능성을 생각해보기

3개의 정수를 한 번에 입력 받은 후 덧셈 출력
조건 - nextInt() : 입력 받은 정수

내 코드

Scanner sc = new Scanner(System.in);
		
		System.out.print("세 정수를 입력하세요. : ");
		
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();
		
		int sum = num1 + num2 + num3;

모범 코드

//		3개의 정수를 담을 변수 3개 선언, 결과값 변수 선언
		int number1 = 0, number2 = 0, number3 = 0, result = 0;
//		입력 클래스 선언
		Scanner sc = new Scanner(System.in);
//		출력할 메세지 변수에 담기, 출력할 서식문자 형식 변수에 담기
		String message = "세 정수를 입력하세요.", example ="예) 1 3 7", format = "%d + %d + %d = %d";
//		메세지 출력
		System.out.println(message);
		System.out.println(example);
//		입력받은 3개의 정수를 각 변수에 대입
		number1 = sc.nextInt();
		number2 = sc.nextInt();
		number3 = sc.nextInt();
//		각 변수를 더한 결과를 변수에 대입
		result = number1 + number2 + number3;
//		결과값 출력
		System.out.printf(format, number1, number2, number3, result);

연산자

기능이 있는 특수 문자

연산자의 우선순위
우선 연산자
항 연산자
술 연산자
프트 연산자
계 연산자
연산자
항 연산자
입 연산자

결합성

하나의 수식에 동일한 연산자가 여러 개 사용되면 알맞은 방향으로 결합되어 연산 되는 성질

비트 연산?? 디지털 회로/컴퓨터 구조/정보통신/네트워크 확인

2 진법으로 바꾸기 not연산자(~) (0->1, 1->0)
RGB(각각 8비트 -> 16 진법) ef3, ~ef3(보색)
000(다 꺼짐-> 검은색) FFF(다 켜짐->흰색)

IP주소 : 8비트 192.168.3.9 논리곱연산(& 마스크)을 적용하여 주소 확인


논리형(boolean)

💡 참 : true (1) 거짓 : false (0)

boolean(1byte=8bit) = true, false
약속 : 어떤 정보 하나를 표시할 때 최소 1바이트

조건식

결과가 참 또는 거짓, 둘 중 하나가 나오는 식, 조건식은 참 또는 거짓의 결과 값

boolean check = 10 == 11;

관계 연산자

관계연산자
==같다
!=같지 않다
>, <초과, 미만
>=, <=이상, 이하
논리연산자
&&(AND), A && B두 조건식 모두 참이면 참
단항연산자
(NOT), !A조건식이 참이면 거짓으로, 거짓이면 참으로 변경

삼항 연산자

조건식이 참이면 참, 거짓이면 거짓

삼항 연산자를 사용해야 할 때
조건식이 딱 한 개 있을 때

int result = 10 > 11 ? 10 : 11;

제어문

▶조건문

💡 **if문** if(조건식) { 실행할 문장; } if(조건식) { 실행할 문장; } ... 💡 **if문** if(조건식) { 실행할 문장; }else if(조건식) { 실행할 문장; } ...
	}else {
				실행할 문장;
	}
💡 **switch문** switch(변수명) { case 값1: 실행할 문장; break; case 값2: 실행할 문장; break; ... default: 실행할 문장; break; }

break문 : 중괄호 영역을 탈출하는 명령어.

출력메소드로 오류를 찾아보자!

1) 어떠한 값을 넣어도 항상 같은 값이 나오는 상황

2) 적어도 위에 있는 문장을 모두 읽고 지나가는 상황

Unreachable Code(Dead Code)

삼항연산자, if문, switch문의 비교

  • 삼항연산자: 조건식이 1개 있을 경우 사용
  • if문: 조건식에 비교(>, <, >=, <=) 연산자를 사용하거나, 여러 개의 조건식을 논리 연산자로 연결할 때 사용
  • switch문: 하나의 변수에 여러 개의 값이 담길 수 있고, 각 값이 같은 지를 비교할 때 사용

대입 연산자(복합 대입 연산자, 누적 연산자)

💡 +=, -=, *=, /=, %=, ...
	int money = 10000;
	// money = money - 1500;
	money -= 1500;
	System.out.println(money);

	int data = 10;
	//data = data + 1;
	//data += 1;
	data++;
	System.out.println(data);

증감 연산자

💡 ++, --
  • 전위형 : 해당 라인부터 바로 적용
    ++data, --data
  • 후위형 : 다음 라인부터 적용
    data++, data--
profile
인프런에 취업하고 싶어!

0개의 댓글