특강에서 최대한 해답 코드를 안보고 코딩했다고 말씀하셔서, 안보고 코딩하면서 공부해 보자!
public class Main {
public static void main(String[] args) {
String name;
double koreaScore;
double englishScore;
double mathScore;
}
}String studentName;
int koreanScore;
int englishScore;
int mathScore;은행 계좌 정보를 관리하는 프로그램을 작성해야 합니다.
각 계좌는 계좌 번호, 예금주 이름, 잔액 정보를 가지고 있습니다.
이 정보를 저장하기 위한 변수를 어떻게 선언해야 할까요?
어떤 데이터 유형을 사용해야 할까요?
public class Main {
public static void main(String[] args) {
int cont;
String name;
int money;
}
}String accountNumber;
String accountHolderName;
double balance;계좌번호는 '번호' 인데 왜 문자열로 선언해야 해?
숫자와 하이픈 등의 특수문자를 포함할 수 있는 경우가 많습니다.
예를 들어, 계좌 번호가 "123-45678" 또는 "987654321"과 같은 형식일 수 있습니다.
이러한 이유로 계좌 번호를 문자열(String)로 선언하는 것이 적합합니다.
은행 계좌 정보를 관리하는 프로그램을 작성해야 합니다.
각 계좌는 계좌 번호, 예금주 이름, 잔액 정보를 가지고 있습니다.
프로그램은 사용자로부터 계좌 번호, 예금주 이름, 초기 잔액을 입력받아 계좌를 생성하고, 생성된 계좌 정보를 출력해야 합니다.
이를 위해 어떤 변수를 선언하고 어떤 데이터 유형을 사용해야 할까요?
String)로 선언되어야 합니다.String)로 선언되어야 합니다.double)로 선언되어야 합니다.-- 계좌 정보 --
계좌 번호: 123-45678
예금주 이름: John Doe
잔액: 1000.0
import java.util.Scanner;
public class BankAccount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("계좌 번호를 입력하세요: ");
String accountNumber = scanner.nextLine();
System.out.print("예금주 이름을 입력하세요: ");
String accountHolderName = scanner.nextLine();
System.out.print("초기 잔액을 입력하세요: ");
double balance = scanner.nextDouble();
System.out.println("-- 계좌 정보 --");
System.out.println("계좌 번호: " + accountNumber);
System.out.println("예금주 이름: " + accountHolderName);
System.out.println("잔액: " + balance);
scanner.close();
}
}온라인 쇼핑몰에서 상품을 관리하는 프로그램을 작성해야 합니다.
각 상품은 상품명, 가격, 재고 수량을 가지고 있습니다.
프로그램은 사용자로부터 상품 정보를 입력받아 상품을 생성하고, 생성된 상품 정보를 출력해야 합니다.
이를 위해 어떤 변수를 선언하고 어떤 데이터 유형을 사용해야 할까요?
String)로 선언되어야 합니다.double)로 선언되어야 합니다.int)로 선언되어야 합니다.-- 상품 정보 --
상품명: Laptop
가격: 1500.0
재고 수량: 10
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("상품명을 입력하세요 : ");
String goodsName = scanner.nextLine();
System.out.println("가격을 입력하세요 : ");
double goodsPrice = scanner.nextDouble();
System.out.println("재고 수량을 입력하세요 : ");
int goodsNum = scanner.nextInt();
System.out.println("상품정보입니다");
System.out.println("상품명 : " + goodsName);
System.out.println("상품가격 : " + goodsPrice);
System.out.println("재고 수량 : " + goodsNum);
scanner.close();
}
}import java.util.Scanner;
public class BankAccount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("계좌 번호를 입력하세요: ");
String accountNumber = scanner.nextLine();
System.out.print("예금주 이름을 입력하세요: ");
String accountHolderName = scanner.nextLine();
System.out.print("초기 잔액을 입력하세요: ");
double balance = scanner.nextDouble();
System.out.println("-- 계좌 정보 --");
System.out.println("계좌 번호: " + accountNumber);
System.out.println("예금주 이름: " + accountHolderName);
System.out.println("잔액: " + balance);
scanner.close();
}
}scanner.close(); 를 안하면 어떻게 돼?
프로그램이 더 이상 사용자의 입력을 받지 못하고,
Scanner 객체와 연결된 System.in 스트림이 닫히지 않을 수 있습니다.
이는 프로그램의 예상치 못한 동작이나 리소스 누수로 이어질 수 있습니다.
학생들의 성적을 관리하는 프로그램을 작성해야 합니다.
각 학생은 이름, 국어 점수, 영어 점수, 수학 점수를 가지고 있습니다.
프로그램은 사용자로부터 학생의 정보를 입력받아 학생을 생성하고, 생성된 학생 정보를 출력해야 합니다.
이를 위해 어떤 변수를 선언하고 어떤 데이터 유형을 사용해야 할까요?
String)로 선언되어야 합니다.int)로 선언되어야 합니다.-- 학생 정보 --
이름: John Doe
국어 점수: 90
영어 점수: 85
수학 점수: 95
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("이름을 입력하세요 : ");
String name = scanner.nextLine();
System.out.println("국어 점수를 입력하세요 : ");
int KoreaScore = scanner.nextInt();
System.out.println("영어 점수를 입력하세요 : ");
int englishScore = scanner.nextInt();
System.out.println("수학 점수를 입력하세요 : ");
int mathScore = scanner.nextInt();
System.out.println("이름 : " + name);
System.out.println("국어 점수 : " + KoreaScore);
System.out.println("영어 점수 : " + englishScore);
System.out.println("수학 점수 : " + mathScore);
scanner.close();
}
}국어 점수를 입력하세요 :
90
영어 점수를 입력하세요 :
85
수학 점수를 입력하세요 :
95
이름 : 김메튜
국어 점수 : 90
영어 점수 : 85
수학 점수 : 95import java.util.Scanner;
public class StudentManagement {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("학생 이름을 입력하세요: ");
String studentName = scanner.nextLine();
System.out.print("국어 점수를 입력하세요: ");
int koreanScore = scanner.nextInt();
System.out.print("영어 점수를 입력하세요: ");
int englishScore = scanner.nextInt();
System.out.print("수학 점수를 입력하세요: ");
int mathScore = scanner.nextInt();
System.out.println("-- 학생 정보 --");
System.out.println("이름: " + studentName);
System.out.println("국어 점수: " + koreanScore);
System.out.println("영어 점수: " + englishScore);
System.out.println("수학 점수: " + mathScore);
scanner.close();
}
}학생들의 성적을 관리하는 프로그램을 작성해야 합니다.
프로그램은 사용자로부터 학생의 수를 입력받고, 그에 따라 학생들의 이름과 과목 점수를 입력받아 각 학생의 정보를 관리해야 합니다.
각 학생은 이름과 국어, 영어, 수학 점수를 가지고 있습니다.
String)로 선언되어야 합니다.int)로 선언되어야 합니다.-- 학생 정보 입력 --
학생 수를 입력하세요: 3
학생 1 정보 입력:
이름: John Doe
국어 점수: 90
영어 점수: 85
수학 점수: 95
학생 2 정보 입력:
이름: Alice Smith
국어 점수: 88
영어 점수: 92
수학 점수: 76
학생 3 정보 입력:
이름: Bob Johnson
국어 점수: 75
영어 점수: 82
수학 점수: 78
-- 학생 정보 출력 --
학생 1:
이름: John Doe
국어 점수: 90
영어 점수: 85
수학 점수: 95
학생 2:
이름: Alice Smith
국어 점수: 88
영어 점수: 92
수학 점수: 76
학생 3:
이름: Bob Johnson
국어 점수: 75
영어 점수: 82
수학 점수: 78
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("학생 수를 입력하세요 : ");
int stuCount = scanner.nextInt();
String[] stuName = new String [stuCount];
int[] koreaSc = new int [stuCount];
int[] englishSc = new int[stuCount];
int[] mathSc = new int[stuCount];
for (int i = 0; i < stuCount; i++) {
System.out.println("학생" + (i+1) + "정보입력");
// i+1 : 괄호를 빼면 오류가 남
// -> 학생 넘버 1, 11, 21
// (i++) : +1이 아닌 ++로 적어주면 오류가 남
// -> 학생 넘버가 0부터 시작되는 오류
// -> 학생 수를 5로 지정 했을 때 학생 넘버 0, 2, 4
scanner.nextLine();
System.out.println("학생 이름 : ");
stuName[i] = scanner.nextLine();
System.out.println("국어 점수 : ");
koreaSc[i] = scanner.nextInt();
System.out.println("영어 점수 : ");
englishSc[i] = scanner.nextInt();
System.out.println("수학 점수 : ");
mathSc[i] = scanner.nextInt();
// 점수 부분에서 Int가 아닌 Line으로 하면 오류가 남
}
System.out.println("입력한 학생들의 정보입니다");
for (int i = 0; i < stuCount; i++) {
System.out.println("학생 " + (i+1) + ": ");
System.out.println("이름: " + stuName[i]);
System.out.println("국어 점수: " + koreaSc[i]);
System.out.println("영어 점수: " + englishSc[i]);
System.out.println("수학 점수: " + mathSc[i]);
}
scanner.close();
}
}학생 수를 입력하세요 :
3
학생1정보입력
학생 이름 :
김메튜
국어 점수 :
65
영어 점수 :
88
수학 점수 :
90
학생2정보입력
학생 이름 :
김글로리아
국어 점수 :
43
영어 점수 :
76
수학 점수 :
27
학생3정보입력
학생 이름 :
김밥앤떡볶이
국어 점수 :
65
영어 점수 :
95
수학 점수 :
47
입력한 학생들의 정보입니다
학생 1:
이름: 김메튜
국어 점수: 65
영어 점수: 88
수학 점수: 90
학생 2:
이름: 김글로리아
국어 점수: 43
영어 점수: 76
수학 점수: 27
학생 3:
이름: 김밥앤떡볶이
국어 점수: 65
영어 점수: 95
수학 점수: 47import java.util.Scanner;
public class StudentManagement {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("학생 수를 입력하세요: ");
int studentCount = scanner.nextInt();
// 입력된 학생 수에 따라 배열 생성
String[] studentNames = new String[studentCount];
int[] koreanScores = new int[studentCount];
int[] englishScores = new int[studentCount];
int[] mathScores = new int[studentCount];
// 학생 정보 입력
for (int i = 0; i < studentCount; i++) {
System.out.println("\n학생 " + (i + 1) + " 정보 입력:");
scanner.nextLine(); // 버퍼 비우기
System.out.print("이름: ");
studentNames[i] = scanner.nextLine();
System.out.print("국어 점수: ");
koreanScores[i] = scanner.nextInt();
System.out.print("영어 점수: ");
englishScores[i] = scanner.nextInt();
System.out.print("수학 점수: ");
mathScores[i] = scanner.nextInt();
}
// 학생 정보 출력
System.out.println("\n-- 학생 정보 출력 --");
for (int i = 0; i < studentCount; i++) {
System.out.println("학생 " + (i + 1) + ":");
System.out.println("이름: " + studentNames[i]);
System.out.println("국어 점수: " + koreanScores[i]);
System.out.println("영어 점수: " + englishScores[i]);
System.out.println("수학 점수: " + mathScores[i]);
System.out.println();
}
scanner.close();
}
}네, 맞습니다.
String[] studentNames과 int[] koreanScores는 []를 사용하여 배열을 선언한 것입니다.
배열을 선언할 때 []를 사용하면 해당 변수는 배열을 참조할 수 있는 참조형 변수가 됩니다.
String[]는 String 타입의 배열을 참조할 수 있는 변수를 선언하고, int[]는 int 타입의 배열을 참조할 수 있는 변수를 선언합니다.```java
new 키워드를 사용하여 배열을 생성할 때,
배열의 크기를 지정하는 부분에는 변수 이름이 아니라 크기를 나타내는 값을 넣어야 합니다.
예를 들어, String[] studentNames = new String[studentCount];에서 new String[studentCount]는
studentCount 변수의 값에 따라 학생 이름을 저장할 수 있는 크기의 배열을 생성하는 것을 의미합니다.
```배열 변수와 인덱스 [i]를 함께 사용하여 특정 요소에 접근하고 값을 저장하거나 읽어올 수 있습니다.
만약 [i]가 없는 경우, 해당 변수는 배열이 아닌 단일 값을 저장하는 변수로 간주됩니다.
배열 요소에 접근하거나 여러 개의 값을 저장하기 위해서는 반드시 [i]와 같이 인덱스를 사용해야 합니다.인덱스는 배열 내에서 각 요소의 위치를 나타내는 값입니다.
배열은 여러 개의 값을 순서대로 저장하는 자료구조이며,
각 값은 배열 내에서 고유한 위치를 가지고 있습니다.
이 위치를 인덱스라고 합니다.
일반적으로 배열의 인덱스는 0부터 시작하여 순차적으로 증가합니다.
int[] numbers = {10, 20, 30, 40, 50};라는 배열이 있다고 가정해봅시다.
이 배열에서 숫자 10은 인덱스 0에 위치하고, 숫자 20은 인덱스 1에 위치합니다.
숫자 30은 인덱스 2, 숫자 40은 인덱스 3,그리고 숫자 50은 인덱스 4에 위치하게 됩니다.
인덱스는 배열 요소에 접근할 때 사용됩니다.
numbers[2]는 인덱스 2에 해당하는 배열 요소를 참조하는 것이며, 이 경우 30이 됩니다.
배열의 특정 위치에 접근하거나 값을 변경하려면 해당 요소의 인덱스를 알아야 합니다.