JAVA: 변수와 상수

변수: 값을 저장할 수 있는 메모리 상의 공간(기억공간)

 

variable 미국식 [|veriəbl;|vӕriəbl]  영국식 [|veəriəbl] 

[형용사] 변동이 심한; 가변적인  참고 invariable

variable temperatures(가변적인 기온)

출처: http://endic.naver.com/enkrEntry.nhn?sLn=kr&entryId=205d8e9c40c7439da55eebd7e85c3507&query=variable

 

사용법

자료형 변수명; // 변수 선언

int num;

String name;

num=50; // 자료 저장(초기화)

name=”Hong”; // 문자열은 “”로 묶어준다.

num=30; // num이 30이 된다. ‘변수‘ 값이 바뀜.

 

변수 선언과 초기화를 분리하는 것이 보기에 좋다.(취향의 문제)

 

자료형 종류는 8가지.

  • 실무에서 사용하는 것은 4~5가지 정도임
    • boolean, int, double, String 등

변수명은 마음대로.

 

선언은 한 번만!

int num = 50;

int num = 30; // 오류!

 

변수 선언 및 출력

자바의 정석 21쪽

class VarEx1 {

public static void main(String[] args) {

int year = 0, age = 14;

 

System.out.println(“Year:” + year);

System.out.println(“Age: ” + age);

 

year = age + 2000;        // age + 2000 = year

age = age + 1;                // age + 1

 

System.out.println(“\nYear:” + year);

System.out.println(“Age: ” + age);

}

}

 

실제로 수학에서는 age + 2000 = year 이지만 컴퓨터에서는 year = age + 2000 식으로 사용

  • 내부에서 ADD 명령 처리하는 과정

 

clip_image001[4]

변수를 선언하여 값을 저장하고 출력.

 

누적 연산

age += 1; // age = age+1; 또는 age++; 과 동일

 

참고

= (대입 연산자)는 어떤 식보다도 늦게 수행된다.

 

임시 변수

입력/출력을 하지 않고 임시로 사용되는 것

보통 일반적인 경우 tmp, temp 라는 이름으로 사용됨

 

예: a, b의 값을 서로 교환할 때

temp = a;

b = a;

b = temp;

 

변수의 명명규칙

  • 숫자 시작(x)
  • 특수문자는 _와 $만 허용

 

권장하는 규칙

  • 상수의 이름은 모두 대문자로.

final int MAX=100; // C언어에서 const와 같이 JAVA에서는 final을 사용해 변수를 상수화 시킴. 값을 잠가 다른 값으로 변경할 수 없게 만듦. MAX 처럼 모두 대문자를 사용. 여러 단어로 이루어진 경우 _을 붙여준다.(MAX_NUMBER)

  • 변수명이 길어지더라도 그 변수가 어떤 역할을 하는지 유추할 수 있게 하면 좋다.

 

변수의 타입

  • 기본형(Primitive Type)
    • 논리

      문자

      정수

      실수

      boolean: 1

      char: 2

      byte: 1

      short: 2

      int: 4

      long: 8

      float: 4
      double: 8

 

  • 참조형(Reference Type)
    • 주소를 값으로 갖는다. 주소가 저장됨. 참조변수.

 

참고

printf

  • C언어의 printf처럼 JAVA에서도 실수의 소수점을 원하는 대로 표시 가능.(잘 사용하지는 않는다)

System.out.printf(“점수: %d \n”, score); // %d: score를 정수 형태로 찍어라,  \n: 줄바꿈

System.out.printf(“a: %d, pi: %f \n”, a, pi); // 여러 개를 표시 가능.

  • printf(“%4.2f”, pi); // 아래와 같이 저장됨. 4칸을 가지고, 소수점도 칸을 차지.

3

.

1

4

만약 큰 값이 오면 정수부는 최대한 살리고 소수점이 영향을 받음.

 

입력 받기 –  Scanner

Scanner는 java.lang (기본)에는 없고, java.util 패키지에 있음. 같은 일을 하는 패키지를 모음.

C언어에서 Header File을 Include 하듯, JAVA에서는 Import 하면 된다.

  1. package: 문서의 맨 위에 작성.
  2. import: Scanner를 사용하려면 import를 사용.
  3. class:

 

 

자바의 정석 p.41 입력 받고 출력하기

import java.util.Scanner;

 

class ScannerEx {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

 

System.out.print(“input one number > “);

String input = sc.nextLine();

int num = Integer.parseInt(input);

 

System.out.println(“value: ” + input);

System.out.printf(“num = %d%n”, num);

}

}

 

clip_image002[4]

실행 결과

 

import java.util.Scanner; // java.util.* 을 임포트 하면 좀 그렇겠지??

 

Scanner scanner = new Scanner(System.in)

  • Scanner: 클래스
  • scanner: 변수
  • new: 명령어
    • 클래스를 로딩시키는 것

 

String input = sc.nextLine();

nextLine(); // 스페이스바 포함해 키보드로 입력받음(문자열)

next(); // 스페이스 바 이전의 단어만 인식(문자열). 거의 사용하지 않음.

sc.nextLine(); // 결과가 문자열로 나옴

 

int num = integer.parseInt(input);

  • integer 클래스 속의 parseInt() 함수
  • parseInt(); // 정수 형태의 문자열을 정수로 바꿔줌.

 

실습1 이름과 나이 입력받아 출력하기

import java.util.Scanner;

 

class TestScanner1 {

public static void main(String[] args) {

String name, tmp; // init name, tmp

int age; // init age

 

Scanner sc = new Scanner(System.in);

 

System.out.print(“input your name > “);

name = sc.nextLine(); // input name

 

System.out.print(“input your age > “);

tmp = sc.nextLine(); // input age

 

age = Integer.parseInt(tmp); // age (String to Integer)

 

System.out.print(“\nName: [” + name + “] and… “); // results

System.out.printf(“Age : [%d] ^_^”, age);

}

}

clip_image003[4]

실행결과

 

실습2 두 개의 숫자를 입력 받아 출력

import java.util.Scanner;

 

class TestScanner2 {

public static void main(String[] args) {

int num1, num2, total; // init numbers, total variable

String tmp; // init temp

 

Scanner sc = new Scanner(System.in);

 

System.out.print(“input number one > “);

tmp = sc.nextLine(); // input num1

num1 = Integer.parseInt(tmp); // num1 to Integer)

 

System.out.print(“input number two > “);

tmp = sc.nextLine(); // input num2

num2 = Integer.parseInt(tmp); // num1 to Integer)

 

total = num1 + num2; // 1+2

 

System.out.println(“one + two = ” + total); // result

}

}

clip_image004[4]

실행결과

 

자바의 정석: http://www.yes24.com/24/goods/24259565

이것도 살펴보세요!

마지막 기억에서 다시 찾는 앱, 두고 온 곳 찾기(Left In A Moment)

두고 온 곳 찾기는 물건, 위치, 사진, 태그를 빠르게 기록하고 검색 칩과 지도 길찾기로 다시 찾을 수 있도록 돕는 기억 복원형 앱입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다