컴퓨터는 데이터를 처리함으로써 일을 수행한다. 데이터 처리를 위한 기본 문법 요소는 아래와 같다. 이를 학습해보자.
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
생성된 변수는 새로운 값으로 변경될 수 있습니다.
// 문자열 변수 생성 및 초기화 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); } }
연산자의 실행 순서는 연산자 우선순위로 결정됩니다.
// 변수 생성 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); } }
변수의 값은 대입연산을 통해 복사될 수 있습니다.
// 변수 생성 및 값 초기화 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); } }
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"); } }
사용자로부터 입력값을 받으려면 어떻게 해야 할까요? 코드 작성 창 아래쪽, 입력 창에 값을 넣으면 됩니다. 이클립스와 같은 IDE의 경우, “자바 이클립스 args”로 구글링해보세요.
입력된 값은 변수 args[0]를 통해 사용할 수 있습니다.System.out.println(args[0]); // 홍길동
CODE
public class ChickenDrinks { public static void main (String[] args) { System.out.println("치킨엔 " + args[0] + "가 제맛이지~");; } }
입력값이 둘 이상인 경우,
첫 입력값은 args[0], 두번째 입력값은 args[1], … 의 순으로 입력됩니다.System.out.println(args[0]); // 이순신 System.out.println(args[1]); // 안중근
입력값은 공백문자(space, enter, …)로 구분됩니다.
CODEpublic class KimBob { public static void main(String[] args) { System.out.println(args[0] + " 김밥~"); System.out.println(args[1] + " 김밥~"); } }
사용자 입력값은 문자열입니다. 문자열과 숫자는 다릅니다.
따라서 입력값을 그대로 덧셈한 경우, 문자열이 연결될 뿐입니다. 숫자 계산은 되지 않습니다.// "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 +"도 입니다!"); } }