- 데이터의 입력과 출력
public class InuputNumber {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("첫 번째 숫자를 입력하세요?");
int first = s.nextInt();
System.out.println("두 번째 숫자를 입력하세요?");
int second = s.nextInt();
int added = first + second;
System.out.println("두 숫자의 합은 " + added + " 입니다.");
}
}
- 먼저 사용자 입력을 받기 위해서는 Scanner 객체가 필요합니다.
숫자를 입력받기 위해서 Scanner 클래스의 nextInt() 메서드를 호출합니다.
우리가 주목해야 할 것은 first라는 변수에 내가 원하는 숫자를 입력받을 수 있다는 점입니다.
첫 번째 숫자를 입력하세요?
100
두 번째 숫자를 입력하세요?
200
두 숫자의 합은 300 입니다.
public class InputDuble {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("첫 번째 실수를 입력하세요.");
double first = s.nextDouble();
System.out.println("두 번째 실수를 입력하세요.");
double second = s.nextDouble();
double added = first + second;
System.out.print("두 실수의 합은 " + added + " 입니다.");
}
}
-> 실수는 s.nextDouble() 다음과 같이 표시함
public class InputString {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("이름을 입력하세요.");
String name = s.nextLine();
System.out.println("사는 곳을 입력하세요.");
String city = s.nextLine();
System.out.println(city + "에 사는 " + name + "님 반갑습니다." );
}
}
-> 문자열을 입력받을 때는 s.nextDouble() 다음과 같이 표시함
- 배열
- 배열의 기능
- 배열은 같은 타입에(예-int)의 데이터를 단일 변수에 저장할 수 있음
- 배열은 인덱스로 접근할 수 있음
- 배열은 한 번 정의하면 늘어날 수 없음(데이터 크기가 고정됨)
- 배열은 다차원으로 정의할 수 있음
public class ArrayInt {
public static void main(String[] args) {
int[] grades = {80, 95, 92, 70};
System.out.println("국어: " + grades[0]);
System.out.println("수학: " + grades[1]);
System.out.println("영어: " + grades[2]);
System.out.println("과학: " + grades[3]);
double average = ((double)(grades[0] + grades[1] + grades[2] + grades[3])) / grades.length;
System.out.println("선아의 평균 점수: " + average);
}
}
-> average 변수는 0부터 3번까지의 데이터를 모두 더한 후 grades.length로 나눕니다. 앞의 예제와 다른 점은 과목의 수가 늘어나더라도 나누는 수를 변경하지 않아도 됩니다. 물론 개별 과목의 합을 구할 때 grades[0] ~ grades[3] 까지 각 변수를 사용하고 있지만 다음 장에서 배우는 for 문을 활용하면 이런 부분에서도 확장성을 확보할 수 있습니다.
- double 배열을 활용한 예제
public class ArrayDouble {
public static void main(String[] args) {
double[] sensorData;
sensorData = new double[] {
1.0,
2.2,
3.1,
};
int firstIndex = 0;
int lastIndex = sensorData.length -1;
System.out.println("첫 번째 센서 데이터: " + sensorData[firstIndex]);
System.out.println("마지막 센서 데이터: " + sensorData[lastIndex]);
System.out.println("센서 데이터 개수 : " + sensorData.length);
}
}
첫 번째 센서 데이터: 1.0
마지막 센서 데이터: 3.1
센서 데이터 개수 : 3
- String 타입의 배열 활용 예제
public class ArrayString {
public static void main(String[] args) {
String[] cities = new String[10];
int idx = 0;
Scanner s = new Scanner(System.in);
System.out.println("첫 번째 도시를 입력하시오.");
cities[idx++] = s.nextLine();
System.out.println("두 번째 도시를 입력하시오.");
cities[idx++] = s.nextLine();
System.out.println("세 번째 도시를 입력하시오.");
cities[idx++] = s.nextLine();
s.close();
System.out.println("--------------------------");
System.out.println("입력한 도시의 개수는 " + idx);
System.out.println("첫 번째 도시는 " + cities[0]);
System.out.println("마지막 도시는 " + cities[idx -1]);
}
}
첫 번째 도시를 입력하시오.
서울
두 번째 도시를 입력하시오.
대구
세 번째 도시를 입력하시오.
인천
--------------------------
입력한 도시의 개수는 3
첫 번째 도시는 서울
마지막 도시는 인천
- 2차원 배열 예제
public class Array2D {
public static void main(String[] args) {
//1. 2차원 배열 정의
int [][] grades = {
{80, 95, 92, 70}, //jane
{70, 99, 75, 100} //mike
};
//2. 2차원 배열 요소 접근(예, grades[0][i])
double sumJane = 0;
for (int i=0; i < grades[0].length; ++i) {
int grade = grades[0][i];
sumJane += grade;
}
double averageJane = sumJane / grades[0].length;
//3. for each를 활용한 2차원 배열 사용
double sumMike = 0;
for (int grade : grades[1]) {
sumMike += grade;
}
double averageMike = sumMike / grades[1].length;
System.out.println("전체 학생수는 " + grades.length);
System.out.println("Jane의 평균 점수는 " + averageJane);
System.out.println("Jane의 평균 점수는 " + averageMike);
}
}
-> 2차원 배열이므로 grades[0][i]와 같이 접근합니다. [0]은 첫 번째 줄 {80, 95, 92, 70}을 의미하며 그중 i 번째 요소가 됩니다. 예를 들어 grades[0][0]은 80이고 grades[0][1]은 95가 됩니다.
전체 학생수는 2
Jane의 평균 점수는 84.25
Jane의 평균 점수는 86.0
Ghost