자바기초(배열복습 및 다차원배열)

bitna's study note·2022년 3월 28일
0

자바

목록 보기
25/119

3월 28일 내용정리
오늘도 배열복습 및 다차원 배열배움

package study_0328;

import java.util.Arrays;

public class study_0328 {

	public static void main(String[] args) {
		/* String str="홍길동";
		 * String str1="홍길동";
		 * String str2= new String("홍길동"); //String str2="홍길동"과 같은의미
		 * str ==str1 true, str과 str1이 참조하는 객체가 같은가?
		 * str ==str2 false, str2는 new연산자를 이용해 새로운 객체만들었기에 
		 * str, str1,str2 가 참조하는 주소가 다르다(객체가 다르다)
		 * ==: 참조하는 주소가 같은가? 묻는것
		 * str.equals(str2) 값이 같은가를 물음 =>str.equals("홍길동")도 같은 의미
		 * 
		 * String test1="홍길동";
		 * String test2="가나다";
		 * test1=test2; test1은 '홍길동'의 주소가 아닌 '가나다'의 주소를 참조한다.
		 * 
		 * 
		 * <배열>
		 * 1.하나의 배열에는 같은 타입의 데이터만 저장할 수 있다.
		 * 2.배열은 선언과 동시에 저장할 수 있는 데이터 타입이 결정
		 * 3.한번 생성된 배열은 그 배열이 실행되는 동안에는 길이를 늘이거나 줄일수 있다.
		 * 
		 * 타입[]변수;
		 * su[]= {값1,값2...값n}//컴파일에러 공간확보에 대한 알림이 없었음
		 * int[]su={값1,값2...값n}
		 * int[]su= new int[]{값1,값2...값n}
		 * 
		 * Arrays.toString(배열이름); 문자열 형태로 출력
		 * 
		 */
		
		
		int[] arrExam=new int[3]; //4바이트(8비트)공간 3개 만듬
		for(int i=0;i<arrExam.length;i++) {
			arrExam[i]=i*10+10;
		}
		
		System.out.println(Arrays.toString(arrExam));
		
		arrExam[2]=50; //값 하나만 변경하고 싶을때 
		
		System.out.println(Arrays.toString(arrExam));
		
		double[]arrDouble=new double[3];
		for(int i=0;i<arrDouble.length;i++) {
			arrDouble[i]=i*10+10.3;
		}
		System.out.println(Arrays.toString(arrDouble));
		
		String[]arrString = new String[3];
		arrString[0]="홍길동"; //arrString[0]=new String("홍길동");
		arrString[1]="김자바";
		arrString[2]="이자바";
		
		String[]arrString1= {"안녕","하세요","안녕하세요"};
		
		/*
		 * 향상된 for문
		 * for(타입 변수명:배열 또는 컬렉션){ }
		 * 
		 * 예)for(String str: arrString) {
			  System.out.println(str);
		 * 
		 */
		
		for(String str: arrString) {
			System.out.println(str);
		}
		
		
		
	}

}

1.다차원 배열
다차원 배열은 행과 열이 있다.
int [][] 변수명=new int[행의개수][열의개수];
int [][]num= new int[2][3]; [2]->행[3]->열

2.다차원 배열 선언과 값넣기
int[][]num= {{10,20,30},{40,50,60}};

3.for문을 이용하여 2차원배열 값넣기
for(int i=0; i<num.length;i++) { //행의 개수 (1차원 배열을 참조)
for(int j=0;j<num[i].length;j++) { //열의 개수 (2차원 배열의 [i]행의 열을 참조)
System.out.println("num["+i+"]["+j+"]="+num[i][j]);
}
}

아래는 쌤이 내준 문제, 마지막에 합계,평균, 각과목 합계 구하는게 어려웠으나 구함..힘들었따...ㅠ

package study_0328;

import java.util.Scanner;

public class study_0328_01 {

	public static void main(String[] args) {

//3명학생의 국어,영어,수학 점수를 입력 받아서 3명 학생의 성적을 출력		
		
/*		int[][]jum=new int[3][3]; //점수받을 공간  int[][]jum=new int[학생수][과목개수];
 * 		int num=10;
 *		int[][]jum=new int[num][3]; //이렇게 변수를 사용하여 공간개수를 지정해줄수 있음		
 */
		Scanner scan = new Scanner(System.in);
		int[][]jum=new int[3][3];
		
		int sum=0;
		int sum1=0;
		double avg=0.0;
		double avg1=0.0;
		
		
		for(int i=0;i<jum.length;i++) {
			System.out.printf("%d번의 국어 점수를 입력하세요",+i+1);
			jum[i][0]=scan.nextInt();
			
			System.out.printf("%d번의 영어 점수를 입력하세요",+i+1);
			jum[i][1]=scan.nextInt();
				
			System.out.printf("%d번의 수학 점수를 입력하세요",+i+1);
			jum[i][2]=scan.nextInt();
			
			}
		
		System.out.println("번호 국어 영어 수학 합계  평균");
		System.out.println("=============================");
	
			
		for(int i=0; i<jum.length;i++) {
			sum=jum[i][0]+jum[i][1]+jum[i][2];
			avg=sum/3.0;
				
			System.out.printf("%2d %3d %3d %3d %3d %3.2f\n",i+1,jum[i][0],jum[i][1],jum[i][2],sum,avg);		
		}
		System.out.println("=============================");
		
		
		for(int i=0; i<jum.length;i++) {
			sum1=jum[0][i]+jum[1][i]+jum[2][i];
			avg1=sum/3.0;
			
			System.out.printf(" "+" "+"%d",sum1);
				
		}	

	}

}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보