Small Grey Outline Pointer Java 배열
본문 바로가기
Dev./java

Java 배열

by sso. 2022. 5. 21.
package day08;

public class ArTest {
	public static void main(String[] args) {
		int[]arData=new int[4];
		System.out.println(arData);
	}
}

[I@5e91993f

 

[ 배열

I 인티져타입

@구분점

5e91993f 시작 주소

 

 

package day08;

public class ArTest {
	public static void main(String[] args) {
		int[]arData=new int[4];
		System.out.println(arData);
		System.out.println(arData[0]);
	}
}

[I@5e91993f
0

 

new를 넣어 초기화가 되었기 때문에 배열 [0]은 0으로 나온다

 

 

package day08;

public class ArTest {
	public static void main(String[] args) {
		int[]arData=new int[4];
		System.out.println(arData);
		arData[0]=10;
		System.out.println(arData[0]);
	}
}

출력 전에 배열의 [0] 번째에 10을 넣으면 10으로 출력 된다

 

 

 

 

n번째의 값만 알고 싶을 때

package day08;

public class ArTest {
	public static void main(String[] args) {

		int arPrice[]= {1000,2000,3250};

		
		for (int i = 0; i < arPrice.length; i++) {
			if(arPrice[i]==2000) {
				System.out.println("콜라가 있습니다");
			}
		
		}
	}
}

콜라가 있습니다

 

for문 내부에 if문으로 조건을 준다 배열의[i]번째의 값과 동일할 때 실행할 문구 출력하기

 

		for (int i = 0; i < arPrice.length; i++) {
//			if(arPrice[i]==2000) {
//				System.out.println("콜라가 있습니다");
//			}
			System.out.println(arPrice[i]);
		}

1000
2000
3250

 

 



배열인덱스는 왜 0부터 시작하는가?
변수명이 시작주소를 가지고 있으므로 포인터연산 쓸 때 +0이다
그걸 대괄호로 치환하게 되면 0부터 인덱스가 시작할 수 밖에 없다

 

 

 

 

for문 사용하여 배열에 담긴 값 출력하기

package day08;

public class ArTask {
	public static void main(String[] args) {
		
		//배열 선언 후 1~5까지의 값 넣기 (for문 사용)
		int [] arNum = new int[5];
		int [] arNum2 = new int[10];
				
		for (int i = 0; i < arNum.length; i++) {
			arNum[i]=i+1;
		}
		for (int i = 0; i < arNum.length; i++) {
			System.out.println(arNum[i]);
		}
		
		//배열 선언 후 10~1까지 값 넣기 (for문)
		for (int i = 0; i < arNum2.length; i++) {
			arNum2[i]= 10-i;
			System.out.println(arNum2[i]);
		}
		
		
	}
}

 

 

 


 

아파트 평균 월세 구하기

package day09;

import java.util.Scanner;

public class ArTest {
	//아파트 월세 관리 프로그램
	//1동 
	//1호 2호 3호
	//평균월세와 총 월세 구하기
	public static void main(String[] args) {
		int [] ho = new int[3];
		int sum=0;
		double avg=0.0;
		
		Scanner sc = new Scanner(System.in);
		
		for (int i = 0; i < ho.length; i++) {
			System.out.println(i+1 + "호 월세를 입력하세요(단위:만원)");
			ho[i]=sc.nextInt();
			//System.out.println(ho[i]);
		}
		
		for (int i = 0; i < ho.length; i++) {
			sum+=ho[i];
		}
		System.out.println("총 월세: " + sum +"만원");
		avg = Double.parseDouble(String.format("%.2f",(double)sum/ho.length));
		System.out.println("평균월세:  "+avg +"만원");
		
		
	}
}

1호 월세를 입력하세요(단위:만원)
50
2호 월세를 입력하세요(단위:만원)
20
3호 월세를 입력하세요(단위:만원)
45
총 월세: 115만원
평균월세:  38.33만원

 

 

 

 

avg = Double.parseDouble(String.format("%.2f",(double)sum/ho.length));

 

String.format 앞에 있는 문자열을 뒤에 있는 값으로 바꿔준 다음 그 전체적인 형태가 문자열 타입으로 된다

따라서 평균월세값인 38.33 이 문자열로 되는 것

 

parseDouble

String은 클래스타입이므로 앞에 클래스타입으로 받는다

 

 

 

 

예제

package day09;

import java.util.Iterator;
import java.util.Scanner;

public class ArShop {
	//매출액 구하기
	//zara 
	//강남점, 코엑스점, 명동점
	//단위: 백만원 
	//단, 평균 매출액은 만원 단위까지 출력한다. 소수점 2째 자리 까지
	public static void main(String[] args) {

		int [] arIncome = new int[3];
		String [] arName= {"강남점","코엑스점","명동점"};
		int sum=0;
		int cnt=0;
		double avg=0.0;
		String best = "없음"; //초기값을 없음으로 하기, 해당하는 값이 없으면 if문에 들어가지 않는다
		Scanner sc = new Scanner(System.in);
				
		for (int i = 0; i < arIncome.length; i++) {
			System.out.println(arName[i] + "매출액을 입력하세요: (단위:백만원)");
			arIncome[i]=sc.nextInt();
			sum+=arIncome[i];
		}
		
		avg=Double.parseDouble(String.format("%.2f", (double)sum/ arIncome.length));
		System.out.println("zara 총 매출액 : "+ sum + "백만원");
		System.out.println("평균 매출액 : " + avg + "만원");
		
		
	
		for (int i = 0; i < arIncome.length; i++) {
			if(arIncome[i]>avg) {
				cnt++;
				if(cnt==1) best=""; //맨 처음에만 한번 초기화 하기
				
				best += arName[i] + "\n";
			}
		}
		System.out.println("★인센티브 매장★\n" + best);
		
	}
}

 

강남점매출액을 입력하세요: (단위:백만원)
90
코엑스점매출액을 입력하세요: (단위:백만원)
100
명동점매출액을 입력하세요: (단위:백만원)
98
zara 총 매출액 : 288백만원
평균 매출액 : 96.0만원
★인센티브 매장★
코엑스점
명동점

 

 

 

728x90

'Dev. > java' 카테고리의 다른 글

Java 메서드 2  (0) 2022.05.22
Java 2차원 배열로 매장별 매출 구하기  (0) 2022.05.21
Java class/method 연습문제  (0) 2022.05.16
Java 영화관 키오스크 만들기  (0) 2022.05.16
Java 계산기 만들기  (0) 2022.05.15

댓글