Programming Language (45) 썸네일형 리스트형 배열의 출력 배열의 출력 int[] iArr = { 100, 95, 80, 70, 60 }; // length = 5 // 배열을 출력하려면? System.out.println(iArr); // [I@14318bb 와 같은 형식의 문자열이 출력된다. 배열의 값은 출력 X // tip) 위의 문자열 맨 앞의 두 문자는 [ = 배열, I = int, @ ~~ = 주소를 의미한다. // 예외적인 경우 char[] chArr = { 'a', 'b', 'c', 'd' }; System.out.println(chArr); // abcd가 출력된다. // 모든 요소 출력 for(int i=0; i < iArr.length; i++) { // 배열의 요소를 순서대로 하나씩 출력 System.out.println(iArr[i]); .. 배열의 길이 배열의 길이 배열 이름.length - 배열의 길이 (int형 상수) int[] arr = new int[5]; // 길이가 5인 int 배열 int tmp = arr.length;// arr.length의 값은 5이고 tmp에 5가 저장된다. " 배열은 한번 생성하면 실행 동안 그 길이를 바꿀 수 없다. " 의문점 1. 왜 배열은 길이를 못바꾸는지? 메모리에 int(4byte) * 5 = 20 byte 공간을 연속적으로 차지해야 한다. 만약 메모리가 아래 표와 같이 불규칙한 저장 상태라면 8byte 8byte 10byte 16byte 12byte (arr) 8byte (arr) 여기까지는 확장 가능, 하지만, 이 이상의 공간이 필요하다면? 20byte 1byte 4byte 연속적인 특징을 가진 배열의 .. 배열의 생성과 선언, 배열의 인덱스 배열이란? 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 // 배열의 형식 int[] score = new int[5]; // 5개의 저장공간이 메모리에 생긴다. * 변수에 저장된 값은 변수를 통해서 가져올 수 있다. 그렇다면 배열은 같은 타입의 여러 변수를 어떻게 구별해서 가져오는 걸까? 배열을 선언하면 저장 공간의 순서인 인덱스가 부여된다. 이 인덱스는 0 ~ ( 선언한 배열의 길이 - 1 ) 만큼 생성된다. 또한 각각의 저장공간에 이름을 붙이는 대신 참조변수라는 변수에 이름을 붙이고 참조변수와 인덱스를 통해서 저장 공간의 값을 다루게 된다. score[0] , score[1], score[2] ... // 참조변수 : score , index : [0] , [1] 배열의 선언과 생성 배.. 임의의 정수(실수) 만들기 임의의 정수(실수) Math.random() : 임의의 정수(= 난수) 를 만들 때 사용하는 메서드 , 0.0과 1.0 사이의 임의의 double 값을 반환 0.0 조건 연산자, 대입 연산자 조건 연산자 ( 조건식 ? 식 1 : 식2 ) 조건식의 결과에 따라 연산결과를 달리한다. 구성 : 조건식? 식 1 : 식 2 -> true일 경우 식1의 연산결과를, false일 경우 식의 식2의 연산 결과를 반환한다. // 삼항식이라고 부른다. result = (x > y) ? x : y; // 괄호는 생략 가능하다. (가독성 측면) // 참일 경우 result = x; // 거짓일 경우 result = y; // if문으로 표현 if(x > y) result = x; // x > y true else result = y; // x > y false // 삼항식으로 표현 result = (x > y) ? x : y; // 훨씬 코드가 짧아진다는 장점을 지님 대입 연산자 오른쪽 피연산자를 왼쪽 피연산자에.. 논리 연산자, 논리 부정 연산자 논리 연산자 && , || 조건식을 연결할 때 사용하는 연산자 || (OR 결합) : 피연산자 중 어느 한 쪽이 true이면 true && (AND 결합) : 피연산자 양쪽 모두 true이어야 true 1) x는 10보다 크고 20보다 작다. x > 10 && x < 20 // 방법 1. 가독성이 조금 떨어 질 수 있음 10 < x && x < 20 // 방법 2. 가독성이 조금 더 좋음 // 어떤 방법을 쓰던지 상관은 없지만 이왕이면 가독성 좋게 코드를 짜는 것을 선호하자. 2) i는 2의 배수 또는 3의 배수이다. // 표현 방법 i%2==0 || i%3==3 // i = 8일 때 i%2==0 || i%3==0 8%2==0 || 8%3==0 0==0 || 2==0 true || false // 결과는.. 비교 연산자, 문자열의 비교 비교 연산자 > , = , 좌변 값이 크면, true 아니면 false = 좌변 값이 크거나 같으면, true 아니면 false 'B' -> char형 비교를 할 때는 이전 포스팅의 산술 비교에서 언급했던 것 같이 int형으로 형변환 되어 각각 65 > 66 으로 변한다. 즉, false의 결과를 나타낸다. 문자열의 비교 문자열 비교에는 == 대신 equals()를 사용해야 한다. // 기본적인 문자열 생성 방식으로 생성 후 비교 String str1 = "abc"; String str2 = "abc"; System.out.println(str1 == str2); // true System.out.println(str1.equals(str2)); // true // 객체 형태로 문자열 생성 했을.. 반올림 Math.round(), 나머지 연산자 Math.round() 실수를 소수점 첫 째자리에서 반올림한 정수를 반환 long result = Math.round(4.52); // result = 5 // 소수점 특정 자리에서 반올림 하고 싶을 때 class Ex3_11 { public static void main(String args[]) { double pi = 3.141592; // 소수점 3번째자리에서 반올림 하여 3.142의 결과를 얻고 싶을때 double shortPi = Math.round(pi * 1000) / 1000.0; // 10^n 곱한 다음 다시 나누는 과정 // Math.round(3.141592 * 1000) / 1000.0 // Math.round(3141.592) / 1000.0 -> round로 3142 반올림 /.. 이전 1 2 3 4 5 6 다음