Java (국비)/Java 이론25 next() 그리고 nextLine() 의 차이 Test 문제를 풀면 Scanner 클래스는 계속하여 사용 하게 되는데, 이때, next() 와 nextLine()을 사용하다가 발생하는 문제에 대해 정리를 해보았다. Scanner 클래스의 메서드는 아래와 같다. next() nextLine() nextByte() nextShort() nextInt() nextLong() nextDouble() close() 등.. 이런식으로 이클립스에서 확인해 볼 수 있다. 현재 주로 사용하는 메서드는 next() nextLine() nextInt() 등인데, nextLine() 을 사용하다가 문제가 자주 발생했다. 예를들어 아래와 같이 코드를 짰을 경우에, 사용자로부터 num은 잘 입력받다가 str값을 입력 하기 전에 입력이 종료되어 바로 출력값이 나오는 것을 확인.. 2023. 5. 13. Java 자바를 시작하기 전에 .. 패키지 : 소스 코드를 넣을 서랍. 클래스 : 소스 코드 1장. 자바 언어의 기본단위로 클래스 파일은 ".java" 확장자 명을 가진다. 대문자로 시작한다. 모든 프로그램 '동작'은 "함수(메서드)"가 진행한다. 함수 == 기능 x == 입력값, input, 인자, 인수, 매개변수, 파라미터, argument -> 같은말 y == 결과값, output, 반환값, return -> 같은말 public static void main() { } public : 자바는 "공개정책" static : "객체와 무관하게" void main() { } 함수(메서드)는 반드시 3가지를 가지고 있는다. => 함수의 3요소 1. input 2. output 3. 기능 함수명은 반드시 '기능을 유추.. 2023. 5. 11. 객체지향언어 (Object Oriented Language) 특징 객체지향프로그래밍의 특성 a) 추상화 ex) 자동차를 코딩해줘. 사람마다 생각하는게 다를 수 있다. (같은 차를 만들더라도 디테일한 포인트 요소들을 다르게 생각할 수 있다) 즉, 자동차를 코딩 해달라 했는데, OUTPUT이 전혀 다르게 나올 수 있다. 어떻게, 정의하냐에따라, 서로 다른 OUTPUT이 생성됨을 알 수 있다. 따라서 설계가 매우 매우 중요하다 ! 1) 스포츠카 : 속도, 브레이크 제동력() 2) 버스 : 탑승 인원, 요금 정산() 3) 차 : 주유 상태 출력(), 벨트(), 네비게이션() b) 캡슐화 (모듈화, 컴포넌트화) ex) 병원에 가서 약을 받았을 때 약들을 생각해보자. 약의 내부 구성 성분을 (정확히) 몰라도, 약의 효과를 알면 우리는 그냥 먹는다. 약사에게 약의 구성 성분을 물어.. 2023. 5. 10. 함수 간단 정리 함수끼리는 메모리 공간을 공유하지 않는다. (서로 다른 변수) (우연히 변수의 이름이 같지만 주소가 완전히 다르다) 호출이 끝나면 메모리가 해제 된다. 함수의 3요소 1) input (인자, 입력값, 파라미터, args, 매개변수, 인수) 2) output (반환, return, 결과값) 3) 기능 함수의 종류 4가지 A) input도 없고 output도 없어 B) input은 있고 output은 없어 C) input은 없고 output은 있어 D) input도 있고 output도 있어 INPUT : 여러개가 가능 하다. OUTPUT : 없거나, 1개만 존재 해야 한다. -> 2개 이상은 불가능 하다. (다른 값에 의미를 부여하는 방식으로 해결이 가능하긴 하다) public : 공개범위 (자바는 공개정책.. 2023. 5. 9. Flag 알고리즘 컴퓨터에서 무언가를 기억하거나 또는 다른 프로그램에게 약속된 신호를 남기기 위한 용도로 프로그램에 사용되는 미리 정의된 비트. 즉, 특정 동작을 수행할지 말지 결정하는 변수를 플래그 라고 부른다. (보통 1비트) 깃발을 올린다 와 내린다 두가지 상태로만 신호를 줄 수 있는 것을 떠올려 보자. 게임에서 사망 플래그 떴다 라는 표현을 사용할 때의 플래그. boolean flag = false; 로 초기값을 두고 사용 한다. boolean 타입은 초기값이 false 로 알고 있다. (아니면 수정 하겠음,,) 그런데 선언만 해주니까 값이 없다고 오류가 뜨는듯 하다. 초기화를 false로 해줘야 할듯 하다. (23.05.20 추가) 사용 하는 이유 : ~~가 있는지 없는지, ~~가 되었는지 안되었는지, ~~가 T.. 2023. 5. 6. 최대값, 최소값 알고리즘 자바 배열 파트를 공부하다가 최대값, 최소값을 구해야 하는 상황이 생겼다. 먼저, 위와 같은 배열이 있다고 해보자. 위와 같이 최대값을 의미하는 변수 max를 arr[0] 으로 잡아 주는 것이다. arr[0]은 1이고, 1을 기준으로 잡아서 루프를 돌은다. for문 안에 초기식이 i = 1; 인 이유는 arr[0]은 비교할 필요가 없기 때문이다. arr[1] 부터 비교를 해야하기 때문에 초기식은 위와 같게 된다. 반복 1회차를 보자. 만약 arr[0]이 arr[1] 보다 작아 ? true. 그러면, arr[1]의 값을 max에 저장해. 반복 2회차. 만약 arr[1]이 arr[2] 보다 작아 ? true. 그러면, arr[2]의 값을 max에 저장해. 반복 3회차. 만약 arr[2]가 arr[3] 보다 .. 2023. 5. 6. 두 변수의 값 바꾸기 두 변수 x와 y에 저장된 값을 바꾸려면 어떻게 해야 할까 ? int x = 96; int y = 28; x = y; y = x; 로 하면 값이 바뀔까? x = 28; y = 28; 이 되므로, 기존에 x의 값이였던 96은 사라져 버린다. 그래서 이 96을 저장할 임시 공간을 만들어야 한다. int tmp; // 임시로 값을 저장하기 위한 변수 tmp = x; // 1) x의 값을 tmp 공간에 저장 x = y; // 2) y의 값 28을 x 공간에 저장 y = tmp; // 3) x의 값을 저장했던 tmp 공간의 값을 y에 저장 이렇게 식으로 표현해서 이해가 가지 않으면 그림으로 그려 보자. 96을 tmp에 넣고, y 값 28은 x에 넣고, 96을 저장해놓은 tmp의 값을 y로 옮긴다. 글을 올리면서,.. 2023. 5. 6. 이전 1 2 3 다음