[Must Have Java] 1단계 - 자바 기초 프로그래밍

yesjuhee·2022년 11월 2일
0

Java 공부

목록 보기
2/6

Must Have 이재환의 자바 프로그래밍 입문 책을 읽고 정리한 글입니다.

1단계 - 자바 기초 프로그래밍

01 Hello Java World

  • 고수준 언어 : 사람에게 더 친화적인 언어
  • 저수준 언어 : 기계에게 더 친화적인 언어
  • JVM은 자바가 실행되는 가상 환경 머신

02 자료형

정수

  • byte : 1 Byte
  • short : 2Byte
  • int : 4Byte
  • long : 8Byte

실수

  • float : 4Byte
  • double : 8Byte

문자

  • char : 2Byte

논리형

  • boolean : 1 Byte

03 변수, 상수, 자료형의 형변환

  • 변수는 메모리 공간을 기억하는 용도로 사용
  • 자바의 상수에는 리터럴 상수와 final 상수가 있음
    • final 키워드 사용법
      final double PI = 3.14;
  • 자바 컴파일러는 정수형 리터럴 상수를 int형으로 처리
  • 자바 컴파일러는 실수형 리터럴 상수를 double형으로 처리
  • 변수에 데이터를 대입할 때와 데이터끼리의 산술 연산을 할 때 형변환이 일어남
    • 자동 형변환 : 컴파일러가 책임지지 않아도 되는 방향으로 변환
    • 강제 형변환 : (자료형)을 이용해 프로그래머가 명시적으로 형변환
    • L(l), F(f)로 long형과 float형 명시 가능
    • 연산시 형변환은 int, long, float, double 끼리의 계산만 가능

04 연산자

  • 산술 연산자 : +, -, *, /, %
  • 대입 연산자 : =, +=, -=, *=, /=, %=
  • 부호 연산자 : +, -
  • 증감 연산자 : ++, --
  • 비교 연산자 : ==, !=, >, >=, <=, <, <=
  • 논리 연산자 : &&, ||, !
  • 조건 연산자 : 조건식 ? 참일 때 실행 : 거짓일 때 실행

05 콘솔 출력과 입력

  • 콘솔 : 컴퓨터를 대상으로 데이터를 입력 및 출력하는 장치 (키보드, 모니터)

출력

  • 자바에서는 화면에 데이터를 출력하는 다양한 메서드를 제공함
  • System.out과 연결해서 사용
    • System.out.println()
    • System.out.print()
    • System.out.printf("포멧 문자열", 데이터, 데이터, 데이터 ...)
      • 서식 지정자 : %d, %o, %x, %f, %e, %g, %s, %c

입력

  • Sanner 클래스는 편리한 콘솔(키보드) 입력 기능(메서드)를 제공함
import java.util.Scanner;  //Scanner 클래스 임포트

public class Ex02_Scanner1
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);  // Scanner 객체 생성
		
		int num1 = sc.nextInt();      // 숫자 입력, 공백과 탭 구분
		String name1 = sc.nextLine(); // 줄 단위 처리 입력
		String name2 = sc.next();     // 공백이나 탭 단위 처리
	}
}

06 제어문

  • 제어문 : 프로그램의 진행 흐름을 필요에 따라 변경하고자 할 때 사용, 조건문과 반복문이 있음
  • 조건문 : if문, switch문
  • 반복문 : while문, for문, do~while문, break → label 이용 가능!!

07 메서드 변수의 사용 가능 범위

int addTwoNum (int num, int num2)
{
	int result = num1 + num2;
	return result;
}

(반환명) (메서드명) (매개변수)
{
}

08 계산기 만들기

import java.util.Scanner;

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

        while(true)
        {

            showMenu();

            char myChar = sc.next().charAt(0);
            sc.nextLine();
            if(!checkNum(myChar))
            {
                System.out.println("메뉴를 잘못 선택했습니다.");
                continue;
            }

            int num = myChar - '0';
            //int num = Character.getNumericValue(myChar);

            if(num==0)
            {
                break;
            }
            else
            {
                if(num>4)
                {
                    System.out.println("메뉴를 잘못 선택했습니다.");
                    continue;
                }

                System.out.print("첫 번째 숫자:");
                int num1 = sc.nextInt();

                System.out.print("두 번째 숫자:");
                int num2 = sc.nextInt();

                if (num==1) addNum(num1, num2);
                else if (num==2) minusNum(num1, num2);
                else if (num==3) multiplyNum(num1, num2);
                else if (num==4) divideNum(num1, num2);
            }
        }
        System.out.println("계산기를 종료합니다.");
    }

    public static void showMenu()
    {
        System.out.println("메뉴를 선택하세요.");
        System.out.println("1.더하기");
        System.out.println("2.빼기");
        System.out.println("3.곱하기");
        System.out.println("4.나누기");
        System.out.println("0.끝내기");
    }

    public static void addNum(int num1, int num2)
    {
        int result = num1 + num2;
        System.out.println(num1 + " + " + num2 + " = " + result);
    }

    public static void minusNum(int num1, int num2)
    {
        int result = num1 - num2;
        System.out.println(num1 + " - " + num2 + " = " + result);
    }

    public static void multiplyNum(int num1, int num2)
    {
        int result = num1 * num2;
        System.out.println(num1 + " * " + num2 + " = " + result);
    }

    public static void divideNum(int num1, int num2)
    {
        int result1 = num1 / num2;
        System.out.println(num1 + " / " + num2 + " = " + result1);

        int result2 = num1 % num2;
        System.out.println(num1 + " % " + num2 + " = " + result2);
    }

    public static boolean checkNum(char ch)
    {
        if(ch >= '0' && ch<='9')
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
  • 입력 받을 때 처음에 nextLine()을 이용했는데 입력 버퍼 문제 때문에 next()로 수정
profile
반성은 하되 후회하지 않는다😎

0개의 댓글