초보적인 배열 질문입니다. length 관련
돌삥
안녕하세요;; 오랜만에 자바를 보는데 이해가 되지 않는 부분이 있어 이렇게 염치 없이 글을 올립니다.
아래는 소스 입니다.
import java.io.*;
public class Round08_Ex04 {
public static void main(String[] ar) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String[] subname = {국어, 영어, 수학};
int[] sub = new int[subname.length+1];//국어, 영어, 수학, 총점
float avg = 0.0f;
do{
System.out.print(subname[0]+=);
sub[0] = Integer.parseInt(in.readLine());
}while(sub[0] 0 || sub[0] 100);
do{
System.out.print(subname[1]+=);
sub[1] = Integer.parseInt(in.readLine());}while(sub[1] 0 || sub[1] 100);
do{
System.out.print(subname[2]+=);
sub[2] = Integer.parseInt(in.readLine());
}while(sub[2] 0 || sub[2] 100);
sub[sub.length -1] = sub[0] + sub[1] + sub[2];
avg = sub[sub.length -1] / (float)subname.length;System.out.println();
System.out.println(총점 = + sub[sub.length -1]);
System.out.println(평균 = + avg);}
}
이해가 되지 않은 부분이 저 밑줄과 색칠한 부분입니다.
설명은 저 부분은 총점의 자리로서 sub배열의 가장 마지막 자리를 나타내고 있다고 공부하는 책에 쓰여 있습니다.
제가 볼땐;;
현재 sub 배열의 경우 subname.length+1(subname 배열에서 +1 한 상태라) 총 sub[4]이 배열이 되어 있다고 생각됩니다.
그래서 sub[sub.length -1] 을 할경우 sub[4]-1 이므로 sub[3] 번 자리가 될것 같은데 (즉 subname[2])
저 자리가;;; sub의 마지막 자리라는게 이해가 안가서 이렇게 글을 올립니다....
ㅠㅠ 답변부탁드립니다.
-
낮선검객
답변 감사합니다^^
-
재마루
전부 맞습니다
String[] subname = {\국어\