[배열 도입 - 리펙토링] 향상된 for문질문
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
여기에 질문 내용을 남겨주세요.
안녕하세요. 🙂
ClassStart5 클래스에서 향샹된 for문으로 만 사용하려고 하는데 Students s와 같은 변수를 담아둔다고 헀을 때 아래 코드처럼 해야 실행이되더라구요,
package class1;
public class ClassStart5 {
private static int i;
public static void main(String[] args) {
Student student1 = new Student(); // 학생을 담아둘 수 있는 변수를 선언
student1.name = "학생1";
student1.age = 15;
student1.grade = 90;
Student student2 = new Student();
student2.name = "학생2";
student2.age = 16;
student2.grade = 80;
Student[] students = {student1, student2};
for (Student student : students) {
Student s= students[i];
System.out.println("이름: " + s.name+ " 나이: " + s.age + " 성적:" + s.grade);
}
}
}다만 자꾸 컴파일 에러가 나서 확인해보니
위의 private static int i; 코드 때문인거 같은데 별도 선언을 해줘야하는 이유를 정확히 알수 있을까요?
s 변수에 담아두지 않고 아래처럼 해도 int i를 선언해야 하는 거 같습니다.
코딩자체가 입문이라 장황하게 문의드린 점 양해부탁드리며 답변 기다리겠습니다. 감사합니다!
Student[] students = {student1, student2};
for (Student student : students) {
System.out.println("이름: " + students[i].name+ " 나이: " + students[i].age + " 성적:" + students[i].grade);
답변 1
0
안녕하세요. 낯선개발자님, 공식 서포터즈 y2gcoder입니다.
먼저 향상된 for 문을 사용해서 ClassStart5의 코드를 고쳐보면 다음과 같습니다!
public class ClassStart5 {
public static void main(String[] args) {
Student student1 = new Student();
student1.name = "학생1";
student1.age = 15;
student1.grade = 90;
Student student2 = new Student();
student2.name = "학생2";
student2.age = 16;
student2.grade = 80;
Student[] students = {student1, student2};
for (Student student : students) {
System.out.println("이름:" + student.name + " 나이:" + student.age + " 성적:" + student.grade);
}
}
}
여기서 student를 다른 변수로 빼진 않아도 좋습니다 🙂 왜냐하면 향상된 for문을 사용하면서 이미 student라는 다른 변수로 선언했기 때문입니다.
제가 낯선개발자님의 의도를 잘 이해했는지 모르겠습니다!
students[i]로 하시려는 이유에 대해 조금 더 자세하게 설명해주시겠습니까? 적어주신대로만 하면 students[i]는 위의 students 배열을 가리키게 되는데, i값을 증가시켜주는 등의 동작을 하지 않으면 똑같은 값만 반복적으로 출력할 것 같기 때문입니다!
감사합니다.
1
안녕하세요. y2gcoder님 상세한 답변 감사합니다. Student[] students 자체에 i가 포함되는거 같은데 제가 향상된 for문을 잘 못 이해했던 거 같습니다 ㅎ,,
이미 향상된 for문을 통해서 student라는 변수를 선언한 점 이해했습니다. 감사합니다 🙂
질문있습니다
0
25
1
1번 문제 질문입니다.
0
31
1
음악플레이어 문제 중 코드질문
0
26
1
9장 상속 문제와 풀이 질문
0
37
1
강의 자료에 사소한 오타가 있습니다.
0
47
2
매서드 참조값 반환??
0
65
1
접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드
0
68
1
자바 기본편 - .(dot)에 관한 질문입니다!
0
84
1
공부방법
0
73
2
상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?
0
81
1
static method 질문
0
65
1
캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요
0
94
1
Method1에서 Student 객체
0
72
1
3강 18. null 질문
0
66
1
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
0
74
1
팩토리 메서드 패턴과 일반 생성자 사용의 장단점
0
96
1
문의
0
103
1
9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다
0
88
1
상속과 그에 따른 메모리 구조 질문
0
61
1
call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다
0
73
1
수강기한
0
134
1
기본편 객체지향 프로그래밍에 대한 정의
0
85
1
섹션10 상속 메모리 구조 및 문제 관련 질문
0
86
1
추가 지식 학습
0
151
2





