-
007. 자바의 입출력 print, Scanner, 실수 정밀도, 키보드 주요 특수문자 영문이름, + 연산자 실습SsY/Class 2023. 2. 18. 03:00728x90
2023.02.02 (목)
자바 기본 입출력
- print()
- println()
- printf()- Test016
- 자바 기본 입출력 : System.out.printf()
- 기본적으로 숫자는 우측 정렬, 문자열은 좌측정렬
더보기/*================================================ ■■■ 자바 기본 프로그래밍 ■■■ - 자바 기본 입출력 : System.out.printf() =================================================*/ public class Test016 { public static void main(String[] args) { System.out.print("AAA"); System.out.print("BBB"); System.out.print("CCC\n"); //--『\n』 개행 //--==>> AAABBBCCC System.out.println(); //-- 개행 //System.out.print(); //--==>> 에러 발생(컴파일 에러) System.out.print("\n"); //-- 개행 //System.out.print(\n); //--==>> 에러 발생(컴파일 에러) System.out.printf("123456789"); System.out.printf("123456789\n)"); //--『\n』 개행 System.out.printf("123456789%n"); //--『%n』 개행 //System.out.printf(); //--==>> 에러 발생(컴파일 에러) System.out.printf("%d + %d = %d\n", 10, 20, 30); //--==>> 10 + 20 = 30 System.out.printf("%d\n", 123); System.out.printf("%10d\n", 123); // ----------123 (10칸 확보) System.out.printf("%8d\n", 1234); // --------1234 (8칸 확보) System.out.printf("%010d\n", 1234); // 0000000000123 (빈 칸을 0으로 채움) //--==>> /* 123 123 1234 0000001234 */ System.out.println(+365); System.out.println(-365); //--==>> /* 365 // 양수 + 출력 (X) -365 */ System.out.printf("%+d\n", 365); System.out.printf("+%d\n", 365); //--==>> /* +365 +365 */ System.out.printf("%d\n", +365); // 양수 + 출력 (X) //--==>> 365 //System.out.printf("%-d\n", 365); //--==>> 에러 발생(런타임 에러) System.out.printf("-%d\n", 365); //--==>> -365 System.out.printf("%d\n", -365); //--==>> -365 //System.out.printf("%d\n", 'A'); //--==>> 에러 발생(런타임 에러) System.out.printf("%c\n", 'A'); //--==>> A //System.out.printf("%c\n", "ABCD"); //--==>> 에러 발생(런타임 에러) System.out.printf("%s\n", "ABCD"); //--==>> ABCD System.out.printf("%d\n", 365); //--==>> 365 System.out.printf("%h\n", 365); //-- 16진수 //--==>> 16d System.out.printf("%o\n", 24); //-- 8진수 //--==>> 30 System.out.printf("%b\n", true); System.out.printf("%b\n", false); //--==>> true // false System.out.printf("%f\n", 123.23); System.out.printf("%.2f\n", 123.23); //--==>> 123.230000 // 123.23 //-- 소수점 이하 두 번째 자리까지 표현 //check System.out.printf("%.2f\n", 123.231); //--==>> 123.23 //-- 소수점 이하 두 번째 자리까지 표현 // (소수점 이하 세 번째 자리 절삭) System.out.printf("%.2f\n", 123.235); //--==>> 123.24 //-- 소수점 이하 두 번째 자리까지 표현 // (소수점 이하 세 번째 자리 반올림) //check // %10d System.out.printf("%8.2f\n", 123.236); //--==>> 123.24 // --123.24 총 8 자리 확보 후 소수점(한칸)까지 그 안에서 표현 System.out.printf("%2.2f\n", 123.236); //--==>> 123.24 // 123.24 확보한 자리수 보다 표현할 숫자의 크기가 크다면 잘리지 않고 자동적으로 자리가 확보 됨 } }
※ 위 예제들을 확인하여 출력 구문의 차이를 확실히 알아두자!
+ format을 쓸 때, printf()와 치환해서 사용이 가능하지만,
format은 String 객체 호출에 사용하는 다른 기능도 있기 때문에 최대한 printf()로 사용하여 혼란을 방지한다.
자바 기본 입출력
- java.util.Scanner// ※ java.util.Scanner
// 단락 문자 패턴을 사용하여 입력을 토큰에 따라 분할하며
// 디폴트(defalt)로 사용되는 단락문자는 공백이다.
// 작성된 다음 토큰은『next()』메소드를 사용
// 다른 형태(자료형)의 값으로 변환할 수 있다.- Test017
import java.util.Scanner; public class Test017 { public static void main(String[] args) { // Scanner 클래스 기반의 인스턴스 생성 Scanner sc = new Scanner(System.in); // 번역기 내장~ // 주요 변수 선언 String name; //-- 이름 int kor,eng, mat; //-- 국어, 영어, 수학 점수 // 연산 및 처리 System.out.print("이름을 입력하세요 : "); // name = br.readLine name = sc.next(); System.out.print("국어 점수 입력 : "); // kor = Integer.parseInt(br.readLine()); // kor = Integer.parseInt(sc.next()); //-- 가능은 함 kor = sc.nextInt(); //-- 정수를 읽어 옴 // kor = sc.nextDouble //-- 실수 형태도 가능! System.out.print("영어 점수 입력 : "); eng = sc.nextInt(); System.out.print("수학 점수 입력 : "); mat = sc.nextInt(); // 결과 출력 System.out.println(); System.out.println(">> 이름 : " + name); System.out.println(">> 총점 : " + (kor + eng + mat)); //System.out.println(">> 총점 : " + kor + eng + mat); // 실행시 에러는 나지 않지만 하면 안됨 //--==>> >> 총점 : 908070 } } // 실행 결과 /* 이름을 입력하세요 : 행성c 국어 점수 입력 : 80 영어 점수 입력 : 85 수학 점수 입력 : 90 >> 이름 : 행성c >> 총점 : 255 계속하려면 아무 키나 누르십시오 . . . */
※ 예제를 관찰하여 Scanner의 기능을 파악
더보기import java.util.Scanner;
==> java.util.Scanner기능이 많으면 성능이 떨어진다!Scanner의 경우 번역 내장, 조약사항 내장 등으로 인해 InputStreamReader나, IOException을 쓸 필요가 없다.단, BufferedReader에 비해, 성능은 조금 떨어진다고 함.- 토큰 : 지정한 구분자로 쪼개어진 문자열
- next : 문자열 타입
- Test018
- 자바 기본 입출력 : java.util.Scanner
더보기//import java.util.Scanner; public class Test018 { public static void main(String[] args) { // 주요 변수 선언 java.util.Scanner sc = new java.util.Scanner(System.in); String name; int kor, eng, mat, tot; // 연산 및 처리 // - 사용자에게 안내 메세지 출력 System.out.print("이름 국어 영어 수학 입력 (공백 구분) : "); //-- "행성c 100 90 80" name = sc.next(); kor = sc.nextInt(); eng = sc.nextInt(); mat = sc.nextInt(); // - 총점 산출 tot = kor + eng + mat; // 결과 출력 System.out.println(); System.out.println(">> 이름 : " + name); System.out.println(">> 총점 : " + tot); } } // 실행 결과 /* 이름 국어 영어 수학 입력 (공백 구분) : 행성c 100 90 80 >> 이름 : 행성c >> 총점 : 270 계속하려면 아무 키나 누르십시오 . . . */
상기와 같이 import 구문을 넣지 않고 일일이 사용할 때 마다 인스턴스 주소를 입력하는 방식으로도 사용이 가능
단, 구문을 여러번 사용할 경우에는 오류를 줄이기 위해 주소값을 import해주는 것이 좋다.
- Test019
- 자바 기본 입출력 : java.util.Scanner
'\' 와 '%' 는 \n(개행), \t(탭), %d(정수형), %n(개행) 등 뒤에오는 옵션과 함께 사용되어 기능을 수행한다.
그렇기 때문에 문자 하나만 입력을 하게 되면 다음 문자를 확인하기 위해서 자바가 문자열을 끝내지 않는다.
따라서, '\' '%'문자 입력을 위해서는 "\\" 또는 "%%" 로 입력이 필요하다.더보기/*================================================ ■■■ 자바 기본 프로그래밍 ■■■ - 자바 기본 입출력 : java.util.Scanner =================================================*/ // ※ java.util.Scanner // 단락 문자 패턴을 사용하여 입력을 토큰에 따라 분할하며 // 디폴트(defalt)로 사용되는 단락문자는 공백이다. // 작성된 다음 토큰은『next()』메소드를 사용 // 다른 형태(자료형)의 값으로 변환할 수 있다. import java.util.Scanner; public class Test019 { public static void main(String[] args) { //System.out.println("\"); //--==>> 에러 발생 (컴파일 에러) // '\' 뒤에 올 옵션을 기다리기 때문에 오류 발생 //System.out.println("\\"); //--==>> \ // 주요 변수 선언 Scanner sc = new Scanner(System.in); String name; int kor, eng, mat, tot; // 연산 및 처리 System.out.print("이름,국어,영어,수학 입력 (『,』구분) : "); // 이름,국어,영어,수학 입력 『,』구분 : 행성,90,80,70 sc = new Scanner(sc.next()).useDelimiter("\\s*,\\s*"); // --------- // "행성,90,80,70" //sc = new Scanner(sc.next()).useDelimiter("\\s*,\\s*"); // .구분자사용( ); // --- // "\\s,\\s" // "\t" "\n" "\r" "\\"→"\" "\s*,\s*" // '\' 뒤에 올 옵션을 기다리기 때문에 오류 발생 // --- // 임의의 모든 문자열 // 이름이너무길어서당황스러워요,90,80,70 // 행성,90,80,70 name = sc.next(); kor = sc.nextInt(); eng = sc.nextInt(); mat = sc.nextInt(); tot = kor + eng + mat; // 결과 출력 System.out.println("\n>> 이름 : " + name); System.out.println(">> 총점 : " + tot); } } // 실행결과 /* 이름,국어,영어,수학 입력 (『,』구분) : 행성,100,90,80 >> 이름 : 행성 >> 총점 : 270 계속하려면 아무 키나 누르십시오 . . . */
* Scanner 구분자 변경
더보기sc = new Scanner(sc.next()).useDelimiter();
ㄴ 구분자 입력 : \\s,\\s------ ------임의의 문자열 , 임의의 문자열~~ 사이의 ','로 구분 하라는 뜻
변수와 자료형
- 실수형 데이터 타입의 정밀도 테스트- Test020
/*================================================ ■■■ 자바 기본 프로그래밍 ■■■ - 변수와 자료형 - 실수형 데이터타입의 정밀도 테스트 실습 =================================================*/ public class Test020 { public static void main(String[] args) { // 주요 변수 선언 float a = 0; double b = 0; // 연산 및 처리 → 반복문 구성 → 100000(십만) 번 반복 for (int i=1; i<=100000; i++ ) { //System.out.println("반복출력"); // 십만 번 반복 a+=100000; //-- a 를 100000 만큼 증가시켜라 b+=100000; //-- b 를 100000 만큼 증가시켜라 } // 결과 출력 System.out.println("float a : " + (a/100000)); System.out.println("double b : " + (b/100000)); } } // 실행 결과 /* float a : 99996.055 double b : 100000.0 계속하려면 아무 키나 누르십시오 . . . */ //정밀도 차이에서 나오는 차이 //따라서 데이터 연산시 실수는 double 로 처리하는 것이 정밀도에 좋다.
실수형 데이터 타입의 기준이 float이 아닌 double 인 이유
문제해결
- Test021
- 산술 연산자
- BufferedReader
- printf()
더보기/*================================================ ■■■ 자바 기본 프로그래밍 ■■■ - 산술 연산자 - BufferedReader - printf() =================================================*/ // 사용자로부터 임의의 정수를 두 개 입력받아 // 사칙연산 및 나머지 연산을 수행하여 // 그 결과를 출력하는 프로그램을 구현한다. // 단, 입력받는 과정은 BufferedReader 를 활용 할 수 있도록 하고. // 출력하는 과정은 printf() 메소드를 활용 할 수 있도록 한다. // 또한, 나눗셈 연산은 편의상 정수 기반으로 처리한다. // 실행 예) // 첫 번째 정수 입력 : 10 // 두 번째 정수 입력 : 2 // ====[결과]==== // 10 + 2 = 12 // 10 - 2 = 8 // 10 * 2 = 20 // 10 / 2 = 5 // 10 % 2 = 0 // ============== // 계속하려면 아무 키나 누르세요... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test021 { public static void main(String[] args) throws IOException { /* ============================================ 내 풀이 // BufferedReader 인스턴스 생성 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 주요 변수 선언 int a, b; // 첫 번째 정수, 두 번째 정수 //int plus, minus, multiple, devide, rest // 연산 및 처리 System.out.printf("첫 번째 정수 입력 : "); a = Integer.parseInt(br.readLine()); System.out.printf("두 번째 정수 입력 : "); b = Integer.parseInt(br.readLine()); // 결과 출력 System.out.printf("\n====[결과]====\n"); System.out.printf("%d + %d = %d\n", a, b, (a + b)); System.out.printf("%d - %d = %d\n", a, b, (a - b)); System.out.printf("%d * %d = %d\n", a, b, (a * b)); System.out.printf("%d / %d = %d\n", a, b, (a / b)); System.out.printf("%d %% %d = %d\n", a, b, (a % b)); // check %% System.out.printf("==============\n"); */ //============================================= 다 같이 // 주요 변수 선언 int num1, num2; //-- 사용자 입력값을 담을 변수 int res1, res2, res3, res4, res5; //-- 각각의 연산 결과를 담을 변수 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 연산 및 처리 System.out.print("첫 번째 정수 입력 : "); num1 = Integer.parseInt(br.readLine()); System.out.print("두 번째 정수 입력 : "); num2 = Integer.parseInt(br.readLine()); res1 = num1 + num2; res2 = num1 - num2; res3 = num1 * num2; res4 = num1 / num2; res5 = num1 % num2; // 결과 출력 System.out.printf("\n====[결과]====\n"); System.out.printf("%d + %d = %d\n", num1, num2, res1); System.out.printf("%d - %d = %d\n", num1, num2, res2); System.out.printf("%d * %d = %d\n", num1, num2, res3); System.out.printf("%d / %d = %d\n", num1, num2, res4); System.out.printf("%d %% %d = %d\n", num1, num2, res5); System.out.printf("======================\n"); } } // 실행 결과 /* 첫 번째 정수 입력 : 10 두 번째 정수 입력 : 2 ====[결과]==== 10 + 2 = 12 10 - 2 = 8 10 * 2 = 20 10 / 2 = 5 10 % 2 = 0 ====================== 계속하려면 아무 키나 누르십시오 . . . */
키보드 주요 특수문자 영문이름
연산자(Operator) 실습
- 비트 단위 연산자
- 비트 쉬프트 연산자
- 논리 연산자
- 조건 연산자 : 삼항 연산자- Test022
- 비트 단위 연산자
- '~' 비트 not
더보기/*================================================ ■■■ 연산자 (Operator) ■■■ - 비트 단위 연산자 =================================================*/ public class Test022 { public static void main(String[] args) { int a = 10, b = -10; System.out.printf("~a : %d\n", ~a); // bit not System.out.printf("~b : %d\n", ~b); // bit not } } // 실행 결과 /* ~a : -11 ~b : 9 계속하려면 아무 키나 누르십시오 . . . */ /* a = 10 → (00000000 0000000 0000000) 00001010 ↓ ~ a 1 11110101 → -11 → check → ok +00001011 → 11 -------------------- 00000000 → 0 b = -10 → (00000000 00000000 00000000) → 11110110 00001010 (양수 10) ↓ ~ b ↓ ~ b 11110101 00001001 + 1 --------- 11110110 → -10 */
- Test023
- 비트 단위 연산자
- '&' 비트 and, '|' 비트 or, '^' exclusive or
더보기/*================================================ ■■■ 연산자 (Operator) ■■■ - 비트 단위 연산자 =================================================*/ public class Test023 { public static void main(String[] args) { int a=13, b=7; int c, d, e; c = a & b; // 비트and d = a | b; // 비트or e = a ^ b; // exclusive or System.out.printf("a & b = %d\n", c); System.out.printf("a | b = %d\n", d); System.out.printf("a ^ b = %d\n", e); } } // 실행 결과 /* a & b = 5 a | b = 15 a ^ b = 10 계속하려면 아무 키나 누르십시오 . . . */ /* 13 → 0001101 & 7 → 0000111 ------------------ 0000101 → 4 + 1 → 5 13 → 0001101 | 7 → 0000111 ------------------ 0001111 → 8 + 4 + 2 + 1 → 15 13 → 0001101 ^ 7 → 0000111 ------------------ 0001010 → 8 + 2 → 10 */
- Test024
- 비트 단위 연산자
- 두 변수에 담겨있는 내용(값) 바꾸기 swap : 『xor(^)』 연산자 활용
더보기/*================================================ ■■■ 연산자 (Operator) ■■■ - 비트 단위 연산자 - 두 변수에 담겨있는 내용(값) 바꾸기 → 스왑(swap) → 『xor』 연산자 활용~!!! =================================================*/ public class Test024 { public static void main(String[] args) { // 주요 변수 선언 및 초기화 int x=20, y=23; //-- 물컵, 우유컵 //int temp; //-- 임시 저장 변수(빈 컵) // 연산 처리 하기 전에 // 담겨 있는 내용물 확인 System.out.printf("x → %d, y → %d\n", x, y); // 연산 및 처리 /* temp = x; x = y; y = temp; */ /* x=x^y; y=y^x; x=x^y; */ y=y^x; x=x^y; y=y^x; // 결과 출력 System.out.printf("x → %d, y → %d\n", x, y); } } // 실행 결과 /* x → 20, y → 23 x → 23, y → 20 계속하려면 아무 키나 누르십시오 . . . */ /* x=x^y; → x : 20 y : 23 → x : 20 ^ 23 00010100 → 20 ^ 00010111 → 23 ---------------- 00000011 → 3 --------------------> x = 3 y=y^x; → y : 23 x : 3 → y : 23 ^ 3 00010111 → 23 ^ 00000011 → 3 ---------------- 00010100 → 20 --------------------> y = 20 x=x^y; → x : 3 y : 20 → x : 3 ^ 20 00000011 → 3 ^ 00010100 → 20 ---------------- 00010111 → 23 --------------------> x = 23 */
- Test025
- 비트 단위 연산자
더보기/*================================================ ■■■ 연산자 (Operator) ■■■ - 비트 단위 연산자 =================================================*/ public class Test025 { public static void main(String[] args) { int x = 128; // 00000000 000000000 00000000 10000000 System.out.printf("x << 3 : %d\n", x << 3); // 00000000 000000000 00000000 10000000 // ↓ // 00000000 000000000 00000100 00000000 // //--==>> x << 3 : 1024 System.out.printf("x * 8 : %d\n", x * 8); //--==>> x * 8 : 1024 System.out.printf("x >> 3 : %d\n", x >> 3); // 00000000 000000000 00000000 10000000 // ↓ // 00000000 000000000 00000000 00010000 // ↓ //--==>> x >> 3 : 16 System.out.printf("x / 8 : %d\n", x / 8); //--==>> x / 8 : 16 System.out.printf("x << 24 : %d\n", x << 24); // 00000000 000000000 00000000 10000000 // ↓ // 10000000 000000000 00000000 00000000 // MSB(부호화비트)가 1(음수) //--==>> x << 24 : -2147483648 System.out.printf("x << 25 : %d\n", x << 25); System.out.printf("x << 26 : %d\n", x << 26); System.out.printf("x << 27 : %d\n", x << 27); // : System.out.printf("x << 32 : %d\n", x << 32); //--==>> /* x << 25 : 0 x << 26 : 0 x << 27 : 0 x << 32 : 128 */ } } // 실행 결과 /* x << 3 : 1024 x * 8 : 1024 x >> 3 : 16 x / 8 : 16 x << 24 : -2147483648 x << 25 : 0 x << 26 : 0 x << 27 : 0 x << 32 : 128 계속하려면 아무 키나 누르십시오 . . . */
- 자바의 독특한 성질
- Test026
- 논리 연산자
더보기/*================================================ ■■■ 연산자 (Operator) ■■■ - 논리 연산자 =================================================*/ public class Test026 { public static void main(String[] args) { boolean a=true, b=false; // boolean a="true", b="false"; //--(X) System.out.printf("a && b : %b\n", (a && b)); // %b 불린 System.out.printf("a || b : %b\n", (a || b)); System.out.printf("!a : %b\n", !a); System.out.printf("!b : %b\n", !b); } } // 실행 결과 /* a && b : false a || b : true !a : false !b : true 계속하려면 아무 키나 누르십시오 . . . */
- Test027
- 조건 연산자 == 삼항 연산자
/* ┌─────────┐
피연산자 연산자 피연산자 연산자 피연산자
----------- ------------ ------------
1항 2항 3항
피연산자 ? 피연산자 : 피연산자
----------- ------------ -------------
1항 2항 3항
1항의 연산 결과 → true → 2항 수행(치환)
→ false → 3항 수행(치환)
*/더보기// 홀수인지 짝수인지에 대한 판별 연산
// _______ ? _______ : _______;
// 수식1 수식2 수식3
// 수식1 : 참(true) 또는 거짓(false)을 반환할 수 있는 수식 형태로 작성
// 수식2 : 수식1의 처리 결과가 참(true)일 경우 수행하는 영역
// (조건연산자를 구성하는 전체 구문이 이 내용으로 덮어쓰기 된다고 이해하면 됨)
// 수식3 : 수식1의 처리 결과가 거짓(false)일 경우 수행하는 영역
// (조건연산자를 구성하는 전체 구문이 이 내용으로 덮어쓰기 된다고 이해하면 됨)조건 연산자는 중첩이 가능하다
// 수식1 ? 수식2 : 수식3
-------- 수식1' ? 수식2' : 수식3' 으로 연결하여 사용이 가능!더보기/*================================================ ■■■ 연산자 (Operator) ■■■ - 조건 연산자 == 삼항 연산자 =================================================*/ // 사용자로부터 임의의 정수를 입력받아 // 입력받은 정수가 짝수인지 홀수인지 판별하는 프로그램을 구현한다. // 단, 조건연산자(삼항연산자)를 활용하여 문제를 해결할 수 있도록 한다. // 실행 예) // 임의의 정수 입력 : 8 // ==[판별 결과]== // 8 → 짝수 // =============== // 계속하려면 아무 키나 누르세요.... import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Test027 { public static void main(String[] args) throws IOException { // 주요 변수 선언 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n; //-- 사용자로부터 입력받은 임의의 정수를 담아둘 변수 String strResult; //-- 홀수인지 짝수인지에 대한 판별 결과를 담게될 변수 // 연산 및 처리 System.out.print("임의의 정수 입력 : "); n = Integer.parseInt(br.readLine()); // br.readLine() 생성하면서 throws IOException 필요 // (n % 2 == 0) ? "짝수" : "홀수"; // n이 8일 때... // (8 % 2 == 0) ? "짝수" : "홀수"; // (0 == 0) ? "짝수" : "홀수"; // (true) ? "짝수" : "홀수"; // "짝수"; // (n % 2 != 0) ? "홀수" : "짝수"; // n이 8일 때... // (8 % 2 != 0) ? "홀수" : "짝수"; // (0 != 0) ? "홀수" : "짝수"; // (false) ? "홀수" : "짝수"; // "짝수"; // "짝수"; //--(X) // vs. //strResult = "짝수"; //--(O) // check // (n % 2 == 0) ? "짝수" : "홀수"; //--(X) strResult = (n % 2 == 0) ? "짝수" : "홀수"; //--(O) // n이 39일 때... // strResult = (n % 2 == 0) ? "짝수" : "홀수"; // strResult = (39 % 2 == 0) ? "짝수" : "홀수"; // strResult = (1 == 0) ? "짝수" : "홀수"; // strResult = (false) ? "짝수" : "홀수"; // strResult = "홀수"; // 결과 출력 System.out.println(); System.out.println("==[판별 결과]=="); System.out.printf("%d → %s\n", n ,strResult); System.out.println("==============="); } } // 실행 결과 /* 임의의 정수 입력 : 39 ==[판별 결과]== 39 → 홀수 =============== 계속하려면 아무 키나 누르십시오 . . . */ /* 임의의 정수 입력 : 122 ==[판별 결과]== 122 → 짝수 =============== 계속하려면 아무 키나 누르십시오 . . . */
// 개인적 감상
더보기print, println, print의 구분 사용 방법 등 다양한 수식들로 관찰을 하여 기능과 에러 이유를 살펴보면서, 원하는 기능을 수행하게하기 위해서 기능의 구분을 잘 해둬야겠다고 생각했다.특수문자의 경우 많이 사용되고 있던 건 알고 있었지만 ~(틸드) 라던가 자주 사용함에도 불구하고 잘 몰랐던 용어들도 알게되었다. 협업을 위해서는 많이 사용되고 있는 기본 특수문자정도는 외워두는 것이 좋을 것 같다.
비트 연산을 보면서 진짜 내가 0과 1로 이루어진 컴퓨터에게 명령을 내리고 있구나 하는게 느껴진다.
삼항 연산자를 배우면서 뇌가 조금 더 활성화 되어가는 느낌728x90'SsY > Class' 카테고리의 다른 글
009. if, if~else문 실습 , Switch 문 + 실습 (3) 2023.02.20 008. 조건/삼항 연산자 , 실행 흐름의 컨트롤(조건문, 분기문,제어문)if, if~else 실습 (0) 2023.02.19 006. 클래스명 표기법, BufferedReader, System.in.read/skip() 실습 (0) 2023.02.17 005. 비트 연산자, 변수와 자료형 / 키워드 및 식별자 / 연산자 실습, final(상수화) (0) 2023.02.15 004. 음의 정수 표현(2의 보수), 실수 표현 방식의 이해, 상수와 형 변환, 연산자 (0) 2023.02.11 - Test016