본문 바로가기
JavaStudy

a.basic

by nyamnmm 2024. 7. 1.
Output


print
  • print : 단순하게 출력할 때 사용하는 출력문 (개행x)
  • println : 한 줄을 출력하고 개행을 한다
    • print와 println의 표현법은 System.out.print(문자열 포맷); 으로 동일하다.
    • 변수를 함께 사용할 경우 + 로 잇는다.
      ▷ System.out.println("우리집 식구는 " + num + "명이다");
  • printf : print와 printf와 다르게 System.out.printf(문자열 포맷, 값1, 값2);의 형식으로 사용한다.
    • %d : 정수
    • %c : 문자
    • %s : 문자열
    • %f : 실수
      (소수점 아래를 원하는 만큼 표시하고자 할 때는 %.nf를 사용한다. ▷ 소수점 둘째 자리까지 표시 : %.2f)

 

이스케이프 시퀀스
: 문자열 내에서 탭, 백슬래시, 작은따옴표, 큰따옴표 등을 코드로 사용하기 위한 방식
  • \t : 탭
  • \n : 개행
  • \\ : 백슬래시
  • \' : 작은따옴표
  • \" : 큰따옴표

 

package a.basic

public class Output {
	public static void main(String[] args) {
    	// print
        System.out.print("안녕하세요.");
        
        // println
        System.out.println("내일부터 장마철이래요.");
        System.out.println(505);
        
        // 문자열 + 변수
        int number = 20;
        System.out.println("예약손님이 무려 " + number + "명이나 된다고!?");
        
        // printf
        System.out.printf("제 이름은 %s입니다. 나이는 %d이고 키는 %.1f입니다.", "짱구", 20, 100.6);
        
        // 이스케이프 시퀀스
        System.out.println("오늘은 점심으로 짬뽕을 먹었다.\n그런데 짬뽕에 해산물이 없었다.");
        System.out.println("그런데 가격은 만 오천 원이었다.\t \"이럴수가!\"");
    }
}

 

 


 

Input

 

 

Scanner
  • Scanner : 키보드로 값을 입력하는 방법
    • 사용 시 java.util.Scanner 클래스를 이용한다. ( java.util.* 로도 가능)
    • [사용법] Scanner 이름 = new Scanner(System.in);
      Scanner sc = new Scanner(System.in);

 

Scanner를 사용해서 키보드 입력 값 받기
  • sc.next()
    : 가장 기본적인 형태. 문자열로 입력받는다.
    띄어쓰기(공백)를 구분인자로 생각하기에 공백 및 개행(줄 구분)은 저장하지 않는다.
  • sc.nextLine()
    : 사용자가 입력한 값 중 \n(개행문자)를 기준으로 \n을 제외한 나머지 값을 문자열로 가져온다.
    공백과 줄 구분까지 저장 가능하다.
  • sc.nextInt() , sc.nextShort() , sc.nextbyte() , sc.nextFloat() , sc.nextDouble() 등
    : 자료형에 따라 다양한 형태가 존재하며, 맞는 형태로 작성해야 한다.
    nextLine() 외에는 \n 토큰이 함께 들어오기 때문에 sc.nextLine()을 통해서 비워주어야 한다. ( sc.next()도 동일)
    ▷ int a = sc.nextInt();
  • sc.close()
    : Scanner 종료. 필수는 아니지만 더 이상 사용하지 않는 시점에서 닫아주면 좋다.

 

charAt()
  • charAt(index) : 문자열에서 내가 원하는 index의 글자를 가져온다.
    ( ※ index : 순서를 지칭할 때 사용하는 것. 0부터 시작한다.)
  • Scanner에는 char를 입력받을 수 있는 방법이 없으므로 charAt()를 이용해야한다.
  • 사용자에게 문자 한 개만 입력받는 방법
    ▷ char ch = sc.next().charAt(0);

 

package a.basic;

// import
import java.util.Scanner;

public class Input {
	public static void main(String[] args) {
    	// Scanner 선언
    	Scanner sc = new Scanner(System.in);
        
        String name, intro;
        int age;
        float height;
        char type;
        
        // 문자열 입력 받기
        System.out.print("이름 입력 : ");	// Scanner로 인해 println을 쓰지 않아도 개행이 된다
        name = sc.next();
        sc.nextLine();
        
        // 정수 입력 받기
        System.out.print("나이 입력 : ");
        age = sc.nextInt();
        sc.nextLine();
        
        // 실수 입력 받기
        System.out.print("키 입력 : ");
        height = sc.nextFloat();
        sc.nextLine();
        
        // 문자 하나만 입력 받기
        System.out.print("혈액형(AB형 제외) : ");
        type = sc.next().charAt(0);
        
        // 문자열(공백 포함) 입력 받기
        System.out.print("한마디 : ");
        intro = sc.nextLine();
        
        System.out.println("===== 프로필 =====");
        System.out.println("이름 : " + name);
        System.out.println("나이 : " + age);
        System.out.println("키 : " + height);
        System.out.println("한마디 : " + intro);
        
        // Scanner 닫기
        sc.close();
    }
}

 


 

Variable

 

 

변수의 정의
  • 값을 기록하고 사용하기위한 메모리 공간. 값을 보관하거나, 보관된 값을 가져와 사용할 수 있다.
  • [표현법] 자료형 변수명;
    int n;
  • 자료형 : 변수의 크기 및 모양을 지정해주는 부분
  • 변수명 : 변수를 식별하기위해 붙여주는 이름

 

원시 타입 변수
  • 정수 자료형
    : 정수(ex. 1, 2, 3…)를 저장하는 자료형.
      각 자료형마다 표현할 수 있는 수의 범위가 다르다. (※괄호 안의 숫자 참고)
    • byte(1)
    • short(2)
    • int(4)
      int n = 10;
    • long(8)
  • 실수 자료형
    : 실수(ex. 0.1, 0.02, 3.14…)를 저장하는 자료형.
      floot 보다 double이 보다 더 정밀한 수를 표현할 수 있다.
    • float(4)
      float fl1 = 3.14f;
        float fl2 = (float) 3.1456;
        (실수는 기본이 double이기에 float는 숫자 뒤에 f를 붙이거나, (float)를 숫자 앞에 붙여 사용한다.)
    • double(8)
  • 문자 자료형
    : 문자 하나를 담을 수 있는 자료형, 자바는 2바이트 유니코드로 표현한다.
      '  '를 사용한다. (※ "  "은 String이니 주의!)
    • char(2)
      ▷ char ch = 'apple';
  • 논리 자료형
    : true(참)와 false(거짓)을 저장하는 자료형.
    • boolean(1)
      ▷ boolean b1 = (10 > 5);   // b1 = true
        boolean b2 = (20 == 10); // b2 = false

 

문자열 (String)
  • 문자열 같은 경우, 할당해야할 메모리 크기가 너무 가변적이므로 원시타입이 아닌 객체로 변수를 만들어준다.
  • [표현법] String 변수명 = new String("문자열"); 또는 String 변수명 = "문자열";
    String str = new String("ABCDE FG H");
    ▷ String str2 = "가나다라 마 바 사";
      (※객체 생성 방식이 생략된 방법)

 

상수 (final)
  • 수학에서의 상수는 변하지 않는 값이고, 프로그래밍에서는 한 번만 값을 할당할 수 있는 메모리를 뜻한다.
  • [표현법] final 자료형 변수명;
    finasl int AGE;
  • 상수의 변수명은 모두 대문자로 짓는 것이 관례
  • 이름이 둘 이상의 단어로 이루어질 경우 언더바로 연결해준다.
    ▷ final int MY_AGE;
  • 값을 초기화하면 더 이상 변경할 수 없다.

 

package a.basic;

public class Variable {
	public static void main(String[] args) {
    	// 정수형 변수
        byte by = 10;
        short sh = 20;
        int in = 30;
        long lo = 50;
        
        System.out.println("< 정수형 변수 >");
        System.out.println("by : " + by);
        System.out.println("sh : " + sh);
        System.out.println("in : " + in);
        System.out.println("lo : " + lo);
        
        // 실수형 변수
        float fl = 4.10f;
        double dou = 0.1999;
        
        System.out.println("< 실수형 변수 >");
        System.out.println("fl : " + fl);
        System.out.println("dou : " + dou);
        
        // 문자 자료형
        char ch1 = 'S';
        char ch2 = 'O';
        char ch3 = '엩';
        
        System.out.println("< 문자 자료형 >");
        System.out.println("ch1 : " + ch1);
        System.out.println("ch2 : " + ch2);
        System.out.println("ch3 : " + ch3);
        
        // 논리 자료형
        boolean b1 = (1997 < 2001);
        boolean b2 = (1999 >= 1998);
        
        System.out.println("< 논리 자료형 >");
        System.out.println("b1 : " + b1);
        System.out.println("b2 : " + b2);
        
        // 문자열
        String str1 = new String("오목눈이 보호협회");
        String str2 = "니가몰알어조랭이떡가튼게";
        
        System.out.println("< 문자열 >");
        System.out.println("str1 : " + str1);
        System.out.println("str2 : " + str2);
        
        // 상수
        final int ERROR_CODE = 404;
        
        System.out.println("< 상수 >");
        System.out.println("ERROR_CODE : " + ERROR_CODE);
    }
}

 

 


 

Conversion

 

 

형변환
: 자료형을 다른 자료형으로 변경해주는 것
  • 자동 형변환
    • 두 개 이상의 자료형을 연산할 때 하나의 자료형으로 일치 시켜야 연산이 가능하므로, 데이터 손실이 적은 방향으로 자동으로 전환 작업을 해주는 걸 자동(암시적) 형변환이라고 한다.
      ▷ int a = 1;
        float b = 2.3f;
        double c = (a + b); // 이때 a와 b가 자동으로 double로 변환되어 계산된다.
  • 명시적 형변환
    • 값의 범위가 큰 자료형을 더 작은 범위의 자료형으로 변환할 때 사용한다.
    • 자동으로 컴파일러 해주지 않기 때문에 프로그래머가 명시적으로 진행한다.
      ▷ double pi = 3.14;
        int number = (int) pi;
    • 강제로 변환하는 것이기에, 데이터 손실을 감수해야하는 방법이다.

 

package a.basic;

import java.util.Scanner;

public class Coversion {
	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    
    	// 암시적 형변환
        System.out.println("< 암시적 형변환 : 사다리꼴의 넓이 구하기 >");
        float upper, lower, height;
        double area;
        
        System.out.print("윗변 길이 입력 : ");
      	upper = sc.nextFloat();
        
        System.out.print("밑변 길이 입력 : ");
      	lower = sc.nextFloat();
        
        System.out.print("높이 입력 : ");
        height = sc.nextFloat();
        
        area = (uppder + lower) / 2 * height;
        System.out.println("사다리꼴의 넓이 : " + area + "\n");
        
        // 명시적 형변환
        System.out.println("< 명시적 형변환 : 밭의 울타리 개수 구하기>");
        
         System.out.print("가로 길이(소수점 포함) : ");
        float width = sc.nextFloat();
        
        System.out.print("세로 길이(소수점 포함) : ");
        float height = sc.nextFloat();
        
        System.out.print("울타리 길이(소수점 포함) : ");
        float length = sc.nextFloat();
        
        int pence = (int)((width*2 + height * 2)/(length) + 1);
        System.out.println("필요한 울타리의 개수 : " + pence + "개");
    }
}

'JavaStudy' 카테고리의 다른 글

e.array  (0) 2024.07.08
d.loop  (1) 2024.07.05
c.control  (0) 2024.07.04
b.operator  (0) 2024.07.03