class Main {
public static void main(String[] args) {
int[] oldA = {1, 2, 3,};
int[] newA = new int[5];
newA[3] = 4;
newA[4] = 5;
for(int i = 0; i < oldA.length; i++){
newA[i] = oldA[i];
}
for(int i = 0; i < newA.length; i++){
System.out.print(newA[i] + ", ");
}
}
}
배열의 복사 : 전에 저장되있던 배열의 값을 for문을 이용해 복사해 가져온다
3개를 저장하던 oldA 배열에서 5개를 저장할 수 있는 newA 배열로 값을 가져오는 것
class Main {
public static void main(String[] args) {
String[] oldA = {"스윙칩", "포카칩", "감자칩"};
String[] newA = new String[5];
newA[0] = "오이칩";
newA[1] = "당근칩";
newA[2] = "채소칩";
newA[3] = "배추칩";
newA[4] = "호박칩";
System.out.println(newA[0]);
System.out.println(newA[1]);
System.out.println(newA[2]);
System.out.println(newA[3]);
System.out.println(newA[4]);
System.out.println( );
System.arraycopy(oldA, 0, newA, 0, oldA.length);
for(int i = 0; i < newA.length; i++){
System.out.println(newA[i] + ", ");
}
}
}
객체타입배열을 복사하는 법. 출력 메소드가 다르다.
System.out.println => Systme.arraycopy 로 바뀐다
값이 저장되이있던 newA 변수의배열에 oldA의 3개의 값을 복사해 옴기면
기존에 있던 newA의 3개의 값은 사라지고 새롭게 복사된 값이 들어온다.
class Main {
public static void main(String[] args) {
int[] score = {95, 71, 84, 93, 87 };
int sum = 0;
for(int scores : score){
sum += scores;
}
System.out.println("점수 총합 : " + sum);
double num = (double)sum / score.length;
System.out.println("점수 총합 : " + num);
}
}
배열이나 컬렉션을 좀 더 쉽게처리하기위해 향상된 for문을 사용한다.
for문은 실행하기위해 루프카운터 변수와 증감식을 사용하지않는다.
for문이 처음실행할 떄 배열(1)에서 가져올 첫 번째 값이 존재하는지 평가합니다.
가져올 값이 존재하면 해당 값을 변수(2)에 저장합니다.
블록 내부의 실행문(3)이 모두 실행되면 다시 루프를돌아 배열(1)에서 가져올 다음 값이
존재하는지 평가하고 값이 있다면 다시 2-3-1순서로 루프를 진행하고 가져올 항목이
없으면 for문이 종료됩니다.
따라서 for문의 반복 횟수는 배열의 항목 수가 됩니다.
import java.util.Scanner;
class Main {
public static void main(String[] args) {
boolean run = true;
int studentNum = 0;
int[] scores = null;
Scanner Scanner = new Scanner(System.in);
while(run){
System.out.println("---------------------------------------------------");
System.out.println("1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료");
System.out.println("---------------------------------------------------");
System.out.println("선택=>");
int selectNo = Integer.parseInt(Scanner.nextLine());
if(selectNo == 1) {
System.out.print("학생수 =>");
studentNum = Integer.parseInt(Scanner.nextLine());
scores = new int[studentNum];
} else if(selectNo == 2) {
for(int i = 0; i < scores.length; i++){
System.out.print("scores[" + i + "] >");
scores[i] = Integer.parseInt(Scanner.nextLine());
}
} else if(selectNo == 3) {
for(int i = 0; i< scores.length; i++){
System.out.println("score[" + i + "]:" + scores[i]);
}
} else if(selectNo == 4) {
int max = 0;
int sum = 0;
double avg = 0;
for(int i =0; i < scores.length; i++){
max = (max < scores[i]) ? scores[i] : max;
sum += scores[i];
}
avg = (double) sum / studentNum;
System.out.println("최고 점수 : " + max);
System.out.println("평균 점수 : " + avg);
} else if(selectNo == 5) {
run = false;
}
}
System.out.println("프로그램 종료");
}
}
Scanner 활용한 키보드로부터 학생 수와 각 학생들의 점수를 입력받아서
최고점수와 평균점수를 구하는 프로그램이다.
2020-03-01 [Day-18] HTML, CSS, JS(이브자리 메인페이지 모작) (0) | 2020.03.01 |
---|---|
2020-02-29 [Day-17] HTML, CSS, JS(이브자리 메뉴 모작) (0) | 2020.02.29 |
2020-02-27 [Day-15] 자바 (상속을통한 캐스팅허용복습,객체) 혼공자(참조타입,배열) (0) | 2020.02.27 |
2020-02-26 [Day-14] 자바 (상속,캐스팅,)code.monkey, 혼공자(변수,타입,연산자,조건문과반복문) (0) | 2020.02.26 |
2020-02-25 [Day-13] 자바 (조건문,논리연산자,반복문)code.monkey, codeup(기출 문제 풀기) (0) | 2020.02.25 |