public class Practice {
public static void main(String[] args) {
int scores[];
scores = new int[3]; // new - 메인 메모리에 자리가 생긴다. 4(int의 크기) * 3(배열의 길이) 바이트 크기가 된다.
scores[0] = 83;
scores[1] = 90;
scores[2] = 87;
System.out.println("scores[0] : " + scores[0]); // 배열의 첫번째 데이터 출력
System.out.println("scores[1] : " + scores[1]); // 배열의 두번째 데이터 출력
System.out.println("scores[2] : " + scores[2]); // 배열의 세번째 데이터 출력
System.out.println("scores 배열의 길이 : " + scores.length);
// 배열 scores 안에 모든 데이터를 더하자. 합계 구하기. - 갯수가 정해져 있다.
int sum = 0;
for (int i = 0; i < 3; i++) {
sum += scores[i];
}
System.out.println("합계 : " + sum);
// 평균 구하기
double avg = (double) sum / 3;
System.out.println("평균 : " + avg);
} // end of main()
} // end of class
예제 1의 코드는 배열과 값을 각각 생성하고 출력도 하나씩 각각 한다. 반복문도 배열의 길이를 먼저 구한 후 그 값을 반복문과 평균값에 대입한다.
public class Practice {
public static void main(String[] args) {
int[] scores = { 83, 90, 87 }; // 초기에 값을 모두 알고 있는 경우
// 모든 값을 출력
for (int i = 0; i < scores.length; i++) {
System.out.println("scores["+i+"] : "+scores[i]);
}
// 합계 구하기
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
}
System.out.println("합계 : " + sum);
// 평균 구하기
double avg = (double) sum / scores.length;
System.out.println("평균 : " + avg);
}
}
예제 1.1 에선 훨씬 코드가 간결해졌다. 배열 선언과 값을 넣는걸 한 줄로 만들었다. 그리고
scorse.length
를 이용해서 굳이 배열이 길이를 알아보는 출력문을 쓰지 않아도 된다. (배열의 길이가 궁금하지 않는 이상..) 그리고 for문을 이용해서System.out.println("scores["+i+"] : "+scores[i]);
출력문이 세줄 이었던 것을 한 줄로 만들었다. 합계와 평균 구하는 코드에서도scores.length
를 사용했다.
public class Practice {
public static void main(String[] args) {
int[] scores = { 83, 90, 87 }; // 초기에 값을 모두 알고 있는 경우
// 향상된 for문 (iterator for문)
for (int score : scores) {
System.out.println(score);
}
//합계 구하기
int sum = 0;
for (int score : scores) {
sum += score;
}
System.out.println("합계 : " + sum);
// 평균 구하기
double avg = (double) sum / scores.length;
System.out.println("평균 : " + avg);
}
}
향상된 for문을 이용해서 더욱 간단하게 코드를 쓸 수 있다. 하지만 이렇게 쓰면
scores[2] : 87
이런 형식의 출력문을 만들 수 없는 것 같다. 만들 수 있는 방법이 있는지 생각 해 봐야 할 것 같다.
import java.util.Calendar;
enum Week {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public class EnumWeekExample {
public static void main(String[] args) {
Week today = null;
System.out.println(today);
Calendar cal = Calendar.getInstance();
// getInstance() 메서드인 경우 - new하고 주소를 넘겨주는 메서드
// cal에서 요일 정보(7)를 가져온다. 1-일요일, 2-월요일 ... 7-토요일
int week = cal.get(Calendar.DAY_OF_WEEK); // DAY_OF_WEEK - final 변수
System.out.println(week);
switch (week) {
case 1:
today = Week.SUNDAY; break;
case 2:
today = Week.MONDAY; break;
case 3:
today = Week.TUESDAY; break;
case 4:
today = Week.WEDNESDAY; break;
case 5:
today = Week.THURSDAY; break;
case 6:
today = Week.FRIDAY; break;
case 7:
today = Week.SATURDAY; break;
}
System.out.println("오늘 요일 : "+today);
String [] weeks = {"요일","일요일","월요일","화요일","수요일","목요일","금요일","토요일"};
// 0은 안쓰기 때문에 그냥 요일이라고 쓰거나 아님 비워두어도 됨.
System.out.println("오늘의 요일은 " + weeks[week] +" 입니다.");
// 현재 week는 3이기 때문에 화요일이 나옴. weeks[3]
if(today == Week.TUESDAY) {
System.out.println("화요일");
} else {
System.out.println("화요일 아님");
}
}
}
public class ChangeNumber {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a="+a+", b="+b);
// a와 b의 값을 바꾸는 처리 프로그램 작성
int tmp = a;
a = b;
b = tmp;
System.out.println("a="+a+", b="+b);
}
}