25.02.12 (수) 3일차 Java

허배령·2025년 2월 12일

괴발개발 TIL

목록 보기
3/54

출력 메소드

System.out.print();

단순 출력용 메서드 (출력 후 줄바꿈 없음)
콘솔창에 ex) 테스트1테스트2 이렇게 뜸

System.out.println();

한 줄 출력용 메서드 (출력 후 콘솔창 줄바꿈 수행)
콘솔창에
테스트1
테스트2 이렇게 뜸

줄바꿈 여부 차이점은 있지만, 괄호안의 내용이 그대로 출력되는 점은 같음

System.out.printf("%형식", 변수 등)

정해져 있는 형식에 맞춰서 그 형식에 맞는 값(변수)을 줄바꿈 하지 않고 출력

       %d : 정수형, %o : 8진수, %x : 16진수
       %c : 문자(char), %s : 문자열(String)
       %f : 실수(소수점 아래 6자리), %e : 지수형태표현, %g : 대입 값 그대로
       %A : 16진수 실수
       %b : 논리형 (boolean)
       
       정렬 방법
       %5d : 5칸을 확보하고 오른쪽 정렬
       %-5d : 5칸을 확보하고 왼쪽 정렬
       %.2f : 소수점 아래 2자리까지만 표시

ex) 10 + 10 * 5 / 2 = 35 콘솔창에 이렇게 뜨게 하려면.

int iNum1 = 10;
int iNum2 = 5;

System.out.printf("%d + %d *%d / 2 = %d", iNum1, iNum1, iNum2, iNum1 + iNUm1 * iNum2 / 2);

소수점 정렬을 콘솔에서 봤을 때 이러하다!!

escape 문자

Scanner

  • 프로그램 실행 중 키보드 입력을 받을 수 있게 하는 역할

Scanner 객체 생성

  • 내 프로그램 안에 스캐너라는 기계를 새로 만드는 것

Scanner sc = new Scanner(System.in);

  • 스캐너 생성 코드
  • import 구문이 없으면 설계도가 없는 것과 같아서 기계를 만들 수 없음
  • 오류 확인될 시 적절히 import를 작성하여 오류 해결 ( ctrl + shift + o )

키보드 입력값 받기

  • 정수 : sc.nextInt();
  • 실수 : sc.nextFloat(); , sc.nextDouble();
  • 문자열 : sc.next(); , sc.nextLine();
  • next : 다음 입력된 한 단어를 읽어옴,
    공백(스페이스, 탭)을 만나면 입력을 중단 -> 안녕 하세요 -> 안녕
  • nextLine : 다음 입력된 한 줄을 읽어옴
    공백과 함께 입력된 모든 내용을 입력 받음 -> 안녕 하세요 -> 안녕 하세요
nextInt() 사용 후 nextLine() 사용시 문제점
System.out.print("nextInt() 입력 : ");
int intNum = sc.nextInt();
=> 괄호에 정수를 입력하면 "정수만" 입력되고 엔터는 입력이 안됨 (줄 변경이 안됨)

System.out.print("nextLine() 입력 : ");
String word = sc.nextLine();
=> 위에 int에서 입력되지 않은 엔터가 Line에 입력되면서 공백으로 남고 입력 끝나버림

그래서 Int와 Line 사이에 sc.nextLine();를 넣어
공백입력 문제를 해결해 줘야 함

연산자

. : 하위 나타내는 점
(자료형) : 형변환 하는
== : 같다의 의미
!= : 같지 않다 ex) !false = True
&& : 그리고
|| : 또는

단항 연산자

논리 부정 연산자 : !

  • 논리 값을 부정하여 반대값으로 변경
  • 제어문을 활용할 때 많이 쓰임

논리 부정 연산자 예시

boolean bool1 = true;
boolean bool2 = !bool1;
System.out.println(bool2); // false

증감 연산자 : ++ , --

피연산자의 값에 1을 더하거나 빼는 연산자로 위치에 따라 결과 값이 다르게 나타남

전위연산 : 먼저 연산 후 다른 연산 실행 ex) int a = ++10;
후위연산 : 다른 연산 우선 실행 후 연산 ex) int b = 10--;

int a = 3;
int b = 5;
int c = a++ + --b;
		    
3++ + --5
3++ +   4 (b)
c = 7     (대입= 보다 산술+ 이 먼저라 +하고 = 대입)
3++ -> 4 (a)

산술 연산자

일반 수학과 동일한 연산 방법, 우선순위. 단, %는 나누기의 나머지 값을 구하는 연산

  • +, -, *, /, %

주의 : ' / ' 연산 시 형변환에 유의

비교 연산자

  1. 데이터가 같은지, 다른지 비교할 때 쓰이며 결과값은 항상 논리값(true, false)으로 나타남
  • a == b : a와 b가 같으면 true
  • a != b : a와 b가 다르면 true

== 연산자 예시

int a = 10;
int b = 10;
System.out.println(a == b);
// true

!= 연산자 예시

double a = 1.23;
double b = 3.14;
System.out.println(a != b);
// true
  1. 두 피연산자의 값의 크기 비교
    기본형 boolean과 참조형을 제외하고 나머지 자료형에 모두 사용 가능

비교 연산자 예시

if(a < b) {}
int result = a > b ? a++ : b--;
for(int a = 0; a <= b; a++) {}
while(a >= b) {}

논리 연산자

논리 값 두 개를 비교하는 연산자

  • && (AND) : 둘 다 true면 true, 나머지 false
    와, 그리고, ~면서, ~부터 ~까지, ~사이
 int a = 101;
// a는 100 이상 이면서 짝수인가?
		
System.out.println((a >= 100) && (a % 2 == 0)); // false
- || (OR) : 둘 다 falsefalse, 나머지 true
또는, 혹은, ~거나

    int c = 10;
		// c는 10을 초과하거나 짝수인가?
		
        System.out.println(( c > 10) || ( c % 2 == 0));
![](https://velog.velcdn.com/images/hbr0901/post/7d784f97-fba5-44f1-9b0b-442cd5bbe2de/image.png)
### 복합 대입 연산자
다른 연산자와 대입 연산자가 결합한 것으로
__자기 자신과 연산 후 연산 결과를 자기 자신에게 누적 대입__

a += 10 -> a = a + 10

a -= 10 -> a = a – 10

a *= 10 -> a = a x 10

a /= 10 -> a = a / 10

a %= 10 -> a = a % 10

* 증감 연산과 비슷해 보이지만 증감연산자(++, --)는 1씩 증가
대입 연산자는 원하는 값을 증가시키고 그 변수에 저장 가능

### 삼항 연산자
조건식 ? 식1 : 식2;

조건식의 __결과 값에 따라 연산을 처리하는 방식__으로 결과 __값이 참일 경우 식1, 거짓일 경우 식2__ 수행
삼항 연산자 안에 __삼항 연산자를 중첩하여 쓰는 것도 가능__

삼항 연산자 예시

int result1 = a > b ? a++ : b--;
int result2 = a < b ? a++ : (b == 0 ? a-- : b++);  

    int num = 30;
           
        String result = num > 30 ? "num은 30보다 큰 수이다" : "num은 30이하의 수이다";
		System.out.println(result);
        "num은 30이하의 수이다"
profile
인생은 변수

0개의 댓글