1. START JAVA _03 VARIABLE, TYPE, OPERATOR

jaegeunsong97·2022년 11월 17일
0

[Inflearn] 홍팍 자바

목록 보기
3/15

컴퓨터는 데이터를 처리함으로써 일을 수행한다. 데이터 처리를 위한 기본 문법 요소는 아래와 같다. 이를 학습해보자.

Variable

definition >> 변수(variables)란 변하는 수로서, 이름 붙여진 메모리 공간이다. 여기서 메모리(memory)란, 컴퓨터의 핵심 부품으로 기억을 담당한다. 또 다른 핵심 부품으로는 CPU(연산 담당)가 있다.

how make >> 변수 생성 형식은 아래와 같다.

TYPE NAME; // 변수의 타입을 적고, 뒤에 이름을 붙임.

example

int mathScore = 88;            // 수학 점수를 저장할 공간
String bookTitle = "오만과 편견"; // 책 이름을 저장할 공간
double weight = 72.4;          // 무게를 저장할 공간
boolean finished = true;       // 종료 여부를 저장할 공간

Type

타입(types)이란, 변수의 형태이다. 대표적 타입으로는 int(정수형), double(실수형), String(문자열), boolean(논리형) 등이 있다.

// 정수(딱 떨어지는 수) => 3, -7, 0, 10, ...
// 실수(정수 + 소수점 이하) => 3.14, -9.81, 0.0, ...
// 문자열(문자의 나열) => "hello", "world", ...
// 논리형(참/거짓) => true, false

타입은 또 크게 두 가지 카테고리로 나뉜다. 이는 기본형과 레퍼런스형이다.
해당 개념은 추후 객체지향 파트에서 다시 다루도록 하자.

Operator

definition >> 연산자(operators)란, 말 그대로 연산 기호이다. 대표적인 연산자로는 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 대입(=) 등이 있다.

priority >> 연산자는 우선순위에 따라 실행 순서가 결정된다.

int result = 3 + 8 * (3 - 1); // result => 19

1) change variable value

생성된 변수는 새로운 값으로 변경될 수 있습니다.

// 문자열 변수 생성 및 초기화
String str = "가나다라";
// 새로운 값으로 변경
str = "ABCD";
// 결과 출력
System.out.println(str); // "ABCD"

CODE

public class HellWorld {
  public static void main(String[] args) {
    // 변수 생성 및 초기값 설정
    String message = "헬로 월드!";
    // 변수값 출력
    System.out.println(message);
    /* 변수 값을 변경하세요 */
    message = "웰컴 투 헬!";
    // 변수값 출력
    System.out.println(message);
  }
}

2) operator of priority

연산자의 실행 순서는 연산자 우선순위로 결정됩니다.

// 변수 생성
double result;
// 값 대입
result = 1.0 + 2.0 * (3.0 + 4.0) - 5.0;
// 결과 출력
System.out.println(result);

CODE

public class DoMath {
  public static void main(String[] args) {
    // 변수 생성 및 초기화
    double score = 1.0 + 2.0 * (3.0 + 4.0) - 5.0;
    // 변수값 출력
    System.out.println(score);
    // 변수값 변경
    score = score / 2.0;
    // 변수값 출력
    System.out.println(score);
    /* score 변수가 2.5가 되도록 빈칸을 채우세요. */
    score = score / 2.0;
    // 변수값 출력
    System.out.println(score);
  }
}

3) copy variable and connect string

변수의 값은 대입연산을 통해 복사될 수 있습니다.

// 변수 생성 및 값 초기화
double origin = 3.14;
// 변수 값 복사
double copy = origin;
// 변수 값 출력
System.out.println(copy); // 3.14

덧붙여 문자열은 덧셈 연산을 통해 연결될 수 있습니다.

// 문자열 변수 생성
String a = "AAA";
String b = "bbbb";
// 문자열 연결을 통한 새 문자열 생성
String c = a + b;
// 새 문자열 c를 출력
System.out.println(c); // AAAbbbb

CODE

public class Copy {
  public static void main(String[] args) {
    // 문자열 생성
    String origin = "가나다라";
    // 문자열 복사
    String copy = origin;
    // 문자열 출력
    System.out.println(copy);
    /* 덧셈연산을 통해 원하는 문자열을 연결하세요. */
    copy = copy + "마바사";
    // 결과 출력
    System.out.println(copy);
  }
}

4) connect string and integer

connect string to string >> 우리는 앞선 실습에서, 덧셈 연산(+)을 사용한 문자열 간 연결을 배웠습니다.

System.out.println("Hi, " + " Java!");
// => Hi, Java!

connect sting with integer >> 이러한 문자열의 연결은 숫자와도 가능합니다.

// 정수(int)와 문자열 연결
int hour = 13;
System.out.println("지금은 " + hour + "시");
// => "지금은 13시"
// 실수(double)와 문자열 연결
double weight = 1.45;
System.out.println("무게: " + weight + "kg");
// => "무게: 1.45kg"

connect string with bool >> 추가로 참/거짓(boolean) 또한 덧셈을 통해 연결됩니다.

boolean sleepy = true;
System.out.println("슬슬 졸림? " + sleepy);
// => "슬슬 졸림? true"

CODE

public class StringConcatenation {
  public static void main(String[] args) {
    /* 각 변수의 값을 올바르게 초기화하세요. */
    int month = 8;
    int day = 23;
    int n = 1;
    double weight = 72.4;
    // 결과 출력
    System.out.println("-------------------------");
    System.out.println("홍팍이의 " + month + "월 " + day + "일 다이어트 일지");
    System.out.println("-------------------------");
    System.out.println("식사 횟수: " + n + "회");
    System.out.println("몸무게: " + weight + "kg");
  }
}

5) get a input

사용자로부터 입력값을 받으려면 어떻게 해야 할까요? 코드 작성 창 아래쪽, 입력 창에 값을 넣으면 됩니다. 이클립스와 같은 IDE의 경우, “자바 이클립스 args”로 구글링해보세요.

입력된 값은 변수 args[0]를 통해 사용할 수 있습니다.

System.out.println(args[0]); // 홍길동

CODE

public class ChickenDrinks {
  public static void main (String[] args) {
    System.out.println("치킨엔 " + args[0] + "가 제맛이지~");;
  }
}

6) get two inputs

입력값이 둘 이상인 경우,

첫 입력값은 args[0], 두번째 입력값은 args[1], … 의 순으로 입력됩니다.

System.out.println(args[0]); // 이순신
System.out.println(args[1]); // 안중근

입력값은 공백문자(space, enter, …)로 구분됩니다.
CODE

public class KimBob {
  public static void main(String[] args) {
    System.out.println(args[0] + " 김밥~");
    System.out.println(args[1] + " 김밥~");
  }
}

7) review: change C to F

사용자 입력값은 문자열입니다. 문자열과 숫자는 다릅니다.

따라서 입력값을 그대로 덧셈한 경우, 문자열이 연결될 뿐입니다. 숫자 계산은 되지 않습니다.

// "123" + "3.14" => "1233.14"
System.out.println(args[0] + args[1]);

숫자 계산을 하려면, 입력값을 숫자로 변경해야 합니다.

// 문자열을 정수(int)로 변환: "123" => 123
int a = Integer.parseInt(args[0]);
// 문자열을 실수(double)로 변환: "3.14" => 3.14
double b = Double.parseDouble(args[1]);
// 숫자 덧셈 후 출력
System.out.println(a + b); // 126.14

CODE

public class Lab03Review {
  public static void main(String[] args) {
    /* 1. 문자열을 실수로 변환하세요. */
    double f = Double.parseDouble(args[0]);
    /* 2. 화씨온도를 섭씨로 변환하세요. */
    double c = (f-32.0) / 1.8;
    /* 3. 결과를 출력하세요. */
    System.out.println("화씨 " + f + "도는 섭씨로 " + c +"도 입니다!");
  }
}
profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글