본문 바로가기

Java

[Java] 변수 / 입출력 / 연산

[[ 변수 ]]

변수란?

변수란 컴퓨터에 데이터를 저장하기 위한 공간을 뜻한다.

 

변수 문법

자료형 변수명;

 

변수 이름

자료형에 들어가기에 앞서, 변수명은 프로그램의 가독성과 유지보수에 큰 영향을 주므로 규칙을 잘 지켜주는 것이 중요하다.

  • 카멜케이스 사용 권장 (myCar, totalPrice 등)
  • 명사 형태로 작성
  • 특수문자는 ( _, $ ) 사용가능
  • 숫자로 시작할 수 없음 (X 1st Car)
  • 공백 사용 불가 (X my car)
  • 예약어 사용 불가 (X int, X class, X ture)

 

자료형

자료형은 저장되는 데이터의 종류와 형태를 뜻한다.

자료형 종류 바이트
boolean 논리형 true/false 1
char 문자형 0 ~ 65535 유니코드 값 2
byte 정수형 -128 ~ 127 1
short 정수형 -32,768 ~ 32,767 2
int 정수형 -2,147,483,648 ~ 2,147,483,647 4
long 정수형 -9,233,372,036,854,775,808 ~ 9,233,372,036,854,775,807 8
float 실수형 약 소수점 6~7자리까지 4
double 실수형 약 소수점 15~17자리까지 8

 

 

자바에서 실수형 변수는 기본적으로 double 형으로 취급되어,  그 결과 메모리 크기와 정밀도가 다르게 처리된다.

    따라서, 실수형(float)으로 저장하기 위해서는 소수점 뒤에 f를 꼭 붙여줘야 한다. 그렇지 않으면 double 형으로 인식한다.

// 실수형(float) *꼭 뒤에 f를 붙여줘야 한다.
float floatBox = 0.12345678f;


// 실수형(double)
double doubleBox = 0.12345678901234567;

 

문자 vs 문자열

char a = 'a'; // ''사용
String str = "abc"; // ""사용 + 문자열 자료형의 첫글자는 대문자이다.

 

형변환 (Casting)

형 변환은 변수의 자료형을 다른 자료형으로 변경하는 것을 의미한다.

 

1) 업캐스팅(UpCasting)

int smallBox = 10;
double bigBox = smallBox;   // int -> double
System.out.println(bigBox); // 출력: 10.0

 

2) 다운 캐스팅(DownCasting)

double bigBox = 10.111;
int smallBox = (int) bigBox;  // double -> int
System.out.println(smallBox); // 출력: 10 !데이터손실발생!

 

[[ 입출력 ]]

출력

출력은 컴퓨터가 결과를 콘솔(화면)에 보여주는 것을 의미한다. 자바에서는 System 객체를 사용하여 출력 작업을 처리한다.

System.out.print("Hello World!"); // print : 출력 후 자동 줄바꿈 X   
System.out.println("Hello Java!"); // println : 출력 후 자동 줄바꿈 O

 

입력

입력은 사용자로부터 데이터를 받아오는 과정이다. 자바에서는 Scanner라는 객체를 사용하여 입력 작업을 처리한다.

// Scanner 사용을 위해 import java.util.Scanner; 할것
Scanner scanner = new Scanner(System.in);

// 문자형 입력받기
System.out.print("문장을 입력하세요: ");
String StringBox = scanner.nextLine();
System.out.println("StringBox = " + StringBox);

// 정수형(int) 입력받기
System.out.print("정수(int)를 입력하세요: ");
int intBox = scanner.nextInt(); // next+[자료형]()을 이용하여 자료형에 맞는 값을 입력 받을 수 있다.
System.out.println("intBox = " + intBox);

 

실습 1

더보기
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("이름을 입력하세요: ");
        String name = scanner.nextLine();

        System.out.print("나이를 입력하세요: ");
        int age = scanner.nextInt();

        System.out.println("출력 결과 : ");
        System.out.println("이름: " + name);
        System.out.println("나이: " + age);
    }
}

 

[[ 연산자 ]]

산술연산자

종류 의미
+ 더하기
- 빼기
* 곱하기
/ 나누기
% 나머지

 

대입연산

1) 대입연산자

    대입연산자(=)는 변수에 값을 할당하는 데 사용된다.

int num = 5;

 

2) 복합 대입연산자

    복합 대입연산자는 누적 값을 구할 때 자주 사용한다.

int num = 5;
num += 3; // num = num + 5

 

증감연산자

증감 연산자는 변수를 1 증가 (++) 또는 1 감소 (--) 시킬 때 사용된다.

 

1) 전위 연산

int num = 5;
System.out.println("++num: " + (++num));  // 출력: 6 (먼저 증가 후 출력)
System.out.println("num: " + num);  // 출력: 6

 

2) 후위 연산

int num = 5;
System.out.println("num++: " + (num++));  // 출력: 5 (출력 후 증가)
System.out.println("num: " + num);  // 출력: 6

 

비교연산자

  기호 의미
같음 연산자 == 두 값이 같으면 true
다름 연산자 != 두 값은 다르면 true
크기 비교 연산자 >, <, >=, <= 양쪽의 값을 비교하여 논리에 맞으면 ture

 

논리연산자

  기호 의미
AND 연산자 && 두 조건이 모두 참일 때 true
OR 연산자 || 두 조건 중 하나라도 참일 때 true
NOT 연산자 ! false 일 때 true

 

문자열비교

문자열을 비교할 때에는 ==이 아닌, .equals()을 사용해야 한다. ( ==는 문자열 값을 비교하는 것이 아니라 메모리 주소를 비교하는 것이다.)

String text1 = "Hello";
String text2 = "Hello";
boolean isEqual = text1.equals(text2);
System.out.println(isEqual); // 출력: true

 

실습 2

더보기
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // Q1.산술 연산자 문제
        int a = 15;
        int b = 4;

        int sum = a + b;
        System.out.println("덧셈 결과: " + sum);

        int sub = a - b;
        System.out.println("뺄셈 결과: " + sub);

        int mul = a * b;
        System.out.println("곱셈 결과: " + mul);

        int div = a / b;
        System.out.println("나눗셈 결과: " + div);

        int mod = a % b;
        System.out.println("나머지 결과: " + mod);

        // Q2.비교 연산자 문제
        int x = 10;
        int y = 20;

        boolean isBigger = x > y;
        System.out.println("x가 y보다 큰가? " + isBigger);

        boolean isSmaller = x < y;
        System.out.println("x가 y보다 작은가? " + isSmaller);

        boolean isEqual = x == y;
        System.out.println("x와 y가 같은가? " + isEqual);

        boolean isNotEqual = x != y;
        System.out.println("x와 y가 다른가? " + isNotEqual);

        // Q3.두 문자열이 같은지 비교할 수 있는 프로그램
        Scanner scanner = new Scanner(System.in);

        System.out.print("첫 번째 문자열을 입력하세요: ");
        String str1 = scanner.nextLine();

        System.out.print("두 번째 문자열을 입력하세요: ");
        String str2 = scanner.nextLine();

        boolean strisEqual = str1.equals(str2);
        System.out.println("두 문자열이 같은가요? " + strisEqual);

    }
}