» 프로그래밍+DB » JAVA: 변수와 상수

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

이것도 살펴보세요!

JavaServer Faces: Standard Converters Example

JSF-2.0-Programming-Cookbook 참고 UserBean.java adduser.xhtml viewuser.xhtml 입력 결과 DateTimeConverter를 실험하기 위해, 위의 내용을 추가(adduser.xhtml) 결과를 보기 …

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.