반응형

전체 글 105

자바 메서드

위와 같은 계산은 둘 다 변수를 두개 선언하고 어떤 연산을 수행하는지 출력하고, 두 변수를 더해서 결과를 구하게 된다. 만약 프로그램의 여러곳에서 이와 같은 계산을 반복해야한다면, 같은 코드를 여러번 반복해서 작성해야하할 것이다. 더 나아가 부분 수정이 이루어지면 전체의 코드를 수정해야하는 문제점도 발생하게 된다.  이러한 문제를 깔끔하게 해결하기 위해 메서드를 사용한다.함수를 만들어 두고, 필요한 입력 값을 넣어서 해당 함수를 호출하면 된다. 그러면 계산된 결과가 나온다. 함수는 마치 블랙박스와 같다. 함수를 호출할 때는 외부에서는 필요한 값만 입력하면 된다. 그러면 계산된 결과가 출력된다. 같은 함수를 다른 입력 값으로 여러번 호출할 수 있고, 한번 정의해두면 계속해서 재사용할 수 있다.  publi..

공부/Java 2024.08.26

김영한의 자바 입문 자바 배열 문제 1편

1. 배열을 사용하여 문제를 개선하기   향상된 for문으로도 풀 수 있다.   2. 배열의 입력과 출력사용자에게 5개의 정수를 입력받아서 배열에 저장하고, 입력 순서대로 출력하는 예제이다.    3. 사용자에게 5개의 정수를 입력받아 배열에 저장하고, 입력받은 순서의 반대인 역순으로 출력하자.   4. 사용자에게 5개의 정수를 입력받아서 이들 정수의 합계와 평균을 계산하는 프로그램을 작성하자.    5. 이전 문제에서 입력받을 숫자의 개수를 입력받도록 개선해보자.

공부/Java 2024.08.25

자바 배열 2 (2차원 배열)

https://surrealcode.tistory.com/25 자바 배열 1배열이 필요한 이유는 같은 타입의 변수를 반복해서 선언하고, 반복해서 사용하는 문제를 해결하는 것이 바로 배열이다. 위와 같이 학생 5명의 점수를 출력하는 코드를 짠다고 가정하자.위의surrealcode.tistory.com 처음에 배웠던 배열은 단순히 순서대로 나열만 했던 배열이다. 이런 배열을 1차원 배열이라 한다.이번에 학습할 2차원 배열은 말 그대로 차원이 하나 더 추가된 배열이다. 2차원 배열은 int[][] arr = new int [2][3] 와 같이 선언하고 생성한다. 그리고 arr[1][2]와 같이 사용하는데, 먼저 행번호를 찾고 그 다음에 열 번호를 찾는다.행은 영어로 row 열은 영어로 culumn이라 한다. ..

공부/Java 2024.08.25

자바 배열 1

배열이 필요한 이유는 같은 타입의 변수를 반복해서 선언하고, 반복해서 사용하는 문제를 해결하는 것이 바로 배열이다. 위와 같이 학생 5명의 점수를 출력하는 코드를 짠다고 가정하자.위의 코드의 문제는 학생 수가 추가될 수록 계속 새롭게 변수를 선언해주어야 한다는 점이 문제이다./ 한두명의 학생이라면 괜찮겠지만 학생수가 100명이라면 일일히 해줄 수 없기에 배열을 사용한다.(** for문으로는 해결이 불가능하다. 변수의 이름을 증감시킬 순 없기 때문이다.) 이러한 코드를 배열을 사용하여 다음과 같이 바꿔줄 수 있다.   int[] students;는 배열 변수 선언을 하는 것이다.배열을 사용하려면 위와 같이 배열 변수를 선언해야한다.일반적인 변수와 달리 int[]처럼 타입 다음에 대괄호가 들어간다. stud..

공부/Java 2024.08.25

자바 Scanner

자바는 System.in을 통해서 사용자의 입력을 받을 수 있다.그런데 자바가 제공하는 System.in을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 어렵다.자바는 이런 문제를 해결하기 위해 Scanner 라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리하게 받을 수 있다.  scanner를 통해 입력받고 출력하는 예제이다.문자열, 정수 실수 모두 입력을 받고 출력할 수 있다.**타입을 다르게 입력하면 type의 미스매치가 일어나서 에러가 발생한다.   이러한 에러가 발생하기에 주의가 필요하다.   위는 정수 두개를 입력받아 합을 구하는 예제이다.   위의 예제는 정수 두개를 입력받아 크기를 비교하는 예제이다.

공부/Java 2024.08.22

자바 형변환

박은 범위에서 큰 범위로는 당연히 값을 넣을 수 있다ex) in -> long -> double 하지만 큰 범위에서 작은 범위는 다음과 같은 문제가 발생할 수 있다1. 소수점 버림2. 오버플로우 int   자바는 기본적으로 작은 범위에서 큰 범위로의 대입은 허용한다. 큰 그릇은 작은 그릇에 담긴 내용물을 담을 수 있다.  * 하지만 결국 대입하는 형을 맞추어야 하기 때문에 개념적으로는 캐스팅이 되어 들어가는것이다. 사실 이런 코드이다 괄호가 생략되는 것이라고 볼 수 있다.  반대로 큰 범위에서 작은 범위의 대입은 명시적 형변환이 필요하다.    명시적 형변환을 해주지 않으면 incompatible types의 에러가 발생한다.     캐스팅을 해주면 소숫점이 버려지고 int형으로 변경이 된다. int는 ..

공부/Java 2024.08.22

자바 스코프(지역변수와 스코프)

변수는 선언한 위치에 따라 지역변수, 멤버변수로 분류된다. 지역 변수는 이름 그대로 특정 지역에서만 사용할 수 있는 변수라는 뜻이다. 그 특정 지역을 벗어나면 사용할 수 없다. {} 안에 선언되고 여기 밖을 나가면 사라진다. 위와 같이 지역변수였던 x가 {} 밖을 나가자 에러가 나는 것을 볼 수 있다. 이렇게 변수의 접근 가능한 범위를 스코프(Scope)라고 한다. 참고로 Scope를 번역하면 '범위'라는 뜻이다.  스코프의 필요 이유는 다음과 같다.   위의 코드를 보자 temp는 if 안에서만 사용하는 변수이지만 main()코드 블록이 종료될 때 까지 메모리에 유지된다. 따라서 불필요한 메모리가 낭비된다.또한 유지보수 시에 m은 물론이고 temp까지 계속 신경써야 하는 것이 문제이다. 스코프가 불필요..

공부/Java 2024.08.22
반응형