[day05]
1. 배열 array (java에서 많이 쓰진 않는다. 나중에 나올 배열을 자주 씀. 단 이걸 모르면 나중에 나오는걸 모른다)
1) 같은 타입의 여러 변수를 합쳐놓은 것
2) 데이터 저장 공간 수정/ 변경이 안된다
3) 변수 = 값 1 개 저장, 배열은 값 여러개 저장
4) 선언
타입[] 배열명; int[] score;
타입 배열명[]; int score[];
int [] score ;
int : 배열에 저장될 데이터의 타입 (숫자)
[] : 배열 선언 (이건 배열이다!)
score: 배열에 대한 레퍼런스(참조- 저장위치 주소) 변수
선언만으로는 배열의 공간이 할당되지 않으며,
score 라는 레퍼런스 변수만 생성된다. (stack / heap 메모리)
레퍼런스 변수는 배열공간에 대한 주소값 (레퍼런스값)을 가지며
그 변수 자체가 배열은 아니다.
배열 공간이 생성되지 않았으므로 선언만 할시, 레퍼런스 변수의 초기값은 null 이다.
-> 레퍼런스 : 주소, 레퍼런스변수 : 주소를 저장하는 변수
5) 생성
레퍼런스 변수 = new 타입[방개수];
score = new int[5];
new : 메모리 할당 키워드
int : 배열 타입 : 실제 저장될 데이터의 타입
[5] : 배열 방의 개수
6) 인덱스 index
배열의 방은 0부터 시작하는 방번호가 매겨지며 이를 인덱스라 한다.
인덱스를 이용하여 배열의 각 방에 접근 가능.
score[0] = 10;
7) length
배열의 길이 (방개수)를 알여주는 명령어.
score.length --> 5
8) 배열은 연속되는 숫자를 방 번호로 갖고 있어서 (index)
반복문과 함께 자주 사용된다.
9) 초기화
int [] score = {100, 90, 80, 70 60}; //(줄임)
int [] score = new int[]{100,90, 80 ,70, 60}; //(원형)
중괄호 {}안의 요소 개수를 계산해서 방 크기를 자동으로 만들어주고,
순서대로 값도 대입시켜줌,
선언과 초기화를 따로 분리시키면 에러!!
int [] score;
score = {1,2,3,4} (x) 에러남
int [] score = {1,2,3,4};
package day05;
public class Test40 {
public static void main (String[] args) {
// 중첩 for 문
for( int i= 0 ; i < 3 ; i++ ) {
for (int j = 0; j <3 ; j++){
System.out.println(i + " "+ j );
}
}
/*
int a = 0 ;
while(a<3) {
int b = 0 ;
while(b<3) {
System.out.println(a+ " " + b);
b++;
}
a++;
}
*/
}
}
package day05;
import java.util.Scanner;
public class Test41 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//문제1. 구구단 2단 출력
// 출력 형태
// 2 * 1 = 2
// 2 * 2 = 4
// 2 * 3 = 6
//문제2. 구구단의 단수를 입력받아, 해당 단을 출력
//문제3. 구구단 전체 출력 (2단 ~ 9단)
//2단출력
/* int a = 1 ;
for (;a<10 ;a++) {
System.out.println(2 + "*"+ a + "=" + ( 2 * a));
}
*/
/*
//
Scanner sc = new Scanner (System.in);
System.out.println("단수를 입력하세요>>");
int num = sc.nextInt();
for(int i=1;i<10;i++) {
System.out.println(num + "*" + i + "=" + ( i * num));
}
sc.close();
*/
/*
for( int i= 1 ; i < 10 ; i++ ) {
System.out.println("\n"+"******"+i+"단******");
for (int j = 1; j <10 ; j++){
System.out.println(i + "* "+ j + "=" +(i * j) );
}
}
*/
/*
// 별찍기
for(int a = 0; a<5 ; a++) {
for(int b = 0; b<=a; b++) {
System.out.print("*");
}
System.out.println();
}
*/
/* for(int i = 1; i < 7; i+=3) {
System.out.println("***" + i + "단***\t***" + (i+1) + "단***\t***" + (i+2) + "단***");
for(int j = 1; j < 10; j++) {
System.out.print(i + " * " + j + " = " + (i * j) + "\t" );
System.out.print((i+1) + " * " + j + " = " + ((i+1) * j) + "\t" );
System.out.println((i+2) + " * " + j + " = " + ((i+2) * j) );
}
}
*/
//10번
}
}
package day05;
public class Test41111 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* //1번 문제
for(int a = 1; a<=5; a++) {
System.out.println(a+"행 : ***");
}
*/
// 2번 문제
/* for(int a = 0; a <=5; a++ ) {
for(int b = 0; b<=a ; b++ ) {
System.out.print("*");
}
System.out.println();
}
*/
// 3번문제
/* for(int a = 0; a <=5; a++ ) {
for(int b = 5; b>a; b--) {
System.out.print("*");
}
System.out.println();
}
*/
/* // 4번문제
for(int a = 0; a <=4; a++ ) {
for(int b = 1; b<=5 ; b++ ) {
System.out.print(b+a);
}
System.out.println();
}
*/
//5번
/* for(int a = 0; a <=4; a++ ) {
for(int b = 5; b<=9 ; b++ ) {
System.out.print(b-a);
}
System.out.println();
}
*/
// 6번
int star = 1;
boolean flag = true; // 별이 증가하면 true, 별이 감소해야되면 false
for(int a = 0; a < 9 ; a++) {
for(int b = 0; b<star; b++ ) {
System.out.print("*");
}
if(flag) { //== true)
star++;
}else {
star--;
}
if(star == 5) {
flag = false;
}
System.out.println();
}
/* for(int a = 0; a <=4; a++ ) {
for(int b = 0; b<=a ; b++ ) {
System.out.print("*");
}
System.out.println();
}
for(int a = 0; a <=3; a++ ) {
for(int b = 4; b>a; b--) {
System.out.print("*");
}
System.out.println();
}
*/
/* for() {int a = 0;a<5; a++
for(int b = 5 ;b) {
System.out.println();
}
*/ // 첫번째 for a의 길이는 칸수를 결정함
// 2번째 for
/* for(int a = 0; a <=4; a++ ) {
for(int b = 5; b>a ; b-- ) {
System.out.print(" ");
}
for(int c = 0; c<a+1; c++) {
System.out.print("*");
}
System.out.println();
}
*/
// for(int a = 0; a <=5; a++ ) {
// for(int b = 5; b>a; b--) {
// System.out.print("*");
// }
// System.out.println();
// }
// 7번문제
/* for(int a = 0; a <=4; a++ ) {
for(int b = 5; b>a+1 ; b-- ) {
System.out.print(" ");
}
for(int c = 0; c<a+1; c++) {
System.out.print("*");
}
System.out.println();
}
*/
//8번문제
/* for(int a = 0; a <=4; a++ ) {
for(int c = 0; c<a; c++) {
System.out.print(" ");
}
for(int b = 5; b>a ; b-- ) {
System.out.print("*");
}
System.out.println();
}
*/
/* // 10번 삼각형 문제
for(int a = 1 ; a <= 5 ; a++) {
for (int b = 5; b>a ; b--) {
System.out.print(" ");
}
for (int c = 0; c<2*a-1 ; c++) {
System.out.print("*");
}
System.out.println();
}
*/
//10번
/* for(int a=1; a<=5;a++){
for(int b=0;b<5-a;b++){
System.out.print(" ");
}
for(int c=0;c<2*a-1;c++){
System.out.print("*");
}
System.out.println();
}
*/
//11번
/* for(int a=1; a<=5;a++){
for(int b=0;b<a-1;b++){
System.out.print(" ");
}
for(int c=10;c>2*a-1;c--){
System.out.print("*");
}
System.out.println();
}
*/
}
}
package day05;
public class Test42 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 배열 선언
//int a ;
int [] score;
// a= 10;
score = new int [3]; // 방 3개 짜리 만들기
// 선언 + 할당
int [] score1 = new int [3];
score[0] = 10;
score[1] = 20;
score[2] = 30;
System.out.println(score[0]);
System.out.println(score[1]);
System.out.println(score[2]);
// int a = score; 은 안들어감
int a = score[0];
int tot = 0;
for(int i = 0; i<3; i++) {
tot += score[i];
}
System.out.println(tot);
System.out.println(score.length);
}
}
package day05;
public class Test43 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] num = new int [10];
for(int i = 0; i<10; i++) {
num[i]= 100;
System.out.println(num[i]);
}
System.out.println("--------------------");
for(int n: num) {
System.out.println(n);
}
// 초기화
String[] subject = {"java","jsp","spring"};
for(int i = 0; i < subject.length; i++) {
System.out.println(subject[i]);
}
System.out.println("--------------------");
/* String[] subject = new String[3]; //
String[0] = java
double[] d = new double[3];
float [] f = new float[3];
boolean[] b = new boolean[3];
*/
// 업그레이드 for 문 (forEach 문)
for(String a:subject) {
System.out.println(a);
}
}
}
package day05;
public class Test44 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//레퍼런스 치환
/* int [] arr = {1,2,3,4,5};
int [] myArr = arr;
for(int i = 0; i < myArr.length; i++) {
System.out.println(myArr[i]);
arr = null;
System.out.println(myArr [i]);
}
*/
//예제. 최대값, 최소값 구하기
/* int [] score = {79, 59, 36, 98, 25};
// 최대값
int max = score [0];
for (int i = 0; i < score.length; i++) {
if( max< score[i]) {
max = score[i];
}
}
System.out.println("최대값" + max);
//최소값
int min = score [0];
for(int i = 0 ; i < score.length; i++) {
if(min>score[i]) {
min = score[i];
}
}
System.out.println("최소값"+ min);
*/
//===> 더 간단하게
int [] score = {79, 59, 36, 98, 25};
// 최대값
int max = score [0];
int min = score [0];
for (int i = 0; i < score.length; i++) {
if( max< score[i]) {
max = score[i];
}
if(min>score[i]) {
min = score[i];
}
}
System.out.println(max);
System.out.println(min);
}
}
package day05;
import java.util.Scanner;
public class Test45 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 문제1-1. int형 방 5개 배열을 만들고 10,20,30,40,50 을 저장하고, 출력.
// 0 1 2 3 4
// 문제1-2. 위 배열을 이용하여, 인덱스번호 1번과 3번안에 있는 데이터를
// 더한 값을 출력해보세요.
// 문제1-3. 인덱스번호를 사용자로부터 입력받고,
// 해당 인덱스의 데이터를 출력해보세요.
// 문제1-4. 배열안의 모든 요소의 총 합을 출력해보세요.
// 문제1-5. 배열안에 있는 값(데이터)중 하나를 입력하면,
// 그 값이 저장된 인덱스 번호를 출력해보세요.
// 문제1-6. 인덱스 번호 2번과 4번의 값을 교환해보세요.
// 문제1-7. (심화) 내림차순으로 정렬해보세요.
// 1번 문제
/* int [] score = {10, 30, 20, 40, 50};
for(int i =0; i <score.length; i++) {
System.out.println(score[i]);
}
// 2번 문제
System.out.println(score[1]+score[3]);
// 3번 문제
Scanner sc = new Scanner(System.in);
System.out.println("인덱스를 입력하세요>>");
int num = sc.nextInt();
System.out.println(score[num]);
sc.close();
*/
/* //4번 문제
int tot = 0;
for(int i =0; i <score.length; i++) {
tot += score[i];
}
*/ //5번 문제
/* System.out.println(tot);
Scanner sc = new Scanner(System.in);
System.out.println("값을 입력하세요>>");
int val = sc.nextInt();
for(int i = 0; i < score.length; i++){
if(val == score[i]){
System.out.println(i);
break;
if(val==score[i]) {
}
*/ //6번 인덱스 번호 2번 4번 교환
// int [] score = {10, 30, 30, 20, 50};
// 0 1 2 3 4
//빈공간 생성
/*
int[] temp = new int[1]
// int tmp = score[2]
//인덱스 2번을 빈공간으로 잠깐 이동
temp[0] = score[2];
//int tmp = score[2];
System.out.println(temp[0]); //20
//인덱스 4번을 2번으로 이동
score[2] = score[4];
System.out.println(score[2]); //4
//다시 temp의 값을 4번으로 이동
score[4] = temp[0];
socre[4] = tmp;
System.out.println(score[4]); //3
for(int i=0; i < score.length; i++) {
System.out.print(score[i]);// 246315
}
*/
//버블 정렬
/*
int [] score = {10, 20,50, 40, 30};
for(int i =0; i <score.length-1; i++) {
for(int j = i+1; j <score.length; j++) {
if(score[i]<score[j]) {
int tmp = score[i];
score[i]=score[j];
score[j]=tmp;
}
}
}
*/
//선택정렬
int [] score = {10, 20,50, 40, 30};
for(int i = 0; i < score.length-1; i++) {
int max = i; //큰수의 인덱스 번호
for(int j = i+1; j<score.length; j++) {
if( score[max]>score[j]) {
max = j;
}
}
int tmp = score[i];
score[i] = score[max];
score[max] = tmp;
// 결과값 출력
for (int a : score) {
System.out.print(a + " ");
}
System.out.println();
}
}
}
'P-Language > [Java]' 카테고리의 다른 글
[Java] 7 - 객체지향 (0) | 2022.06.03 |
---|---|
[Java] 6 - 다차원 배열 (0) | 2022.06.03 |
[Java] 4 - 조건문(switch), 반복문 (0) | 2022.06.03 |
[Java] 3 - 연산자, 제어문, 조건문 (0) | 2022.06.03 |
[Java] 2 - 변수와 입,출력문 (0) | 2022.06.03 |