PART2. 자바 언어 기본(2)

  1. 데이터의 입력과 출력
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() 다음과 같이 표시함

  1. 배열
  • 배열의 기능
    • 배열은 같은 타입에(예-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 
이 글이 도움이 되었나요?
0 minutes ago
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.