본문 바로가기
전공수업/JAVA

JAVA_Array_(1)

by Alkaloid 2018. 7. 20.
반응형


package week2;

import java.util.*;

public class Pro {


public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

String [] ArryName = {"영희","철수","길동","영수"};

int [] ArryRoom = new int[4];

int totalHight = 0;

int max = 0;

int maxIndex = 0;

int minm = 0;

int minmIndex = 0;

for(int i=0;i<ArryName.length;i++) {

System.out.print(ArryName[i]+" 키를 입력하세요>>");

ArryRoom[i] = sc.nextInt();

totalHight += ArryRoom[i];

}

System.out.println("학생들의 평균 신장은 "+(totalHight/ArryRoom.length)+" 입니다.");

for(int i=0;i<ArryRoom.length;i++) {

if(ArryRoom[i]>max) {

max=ArryRoom[i];

maxIndex=i;

}

}

System.out.println("가장 키가 큰 학생은 "+ ArryRoom[maxIndex] + "입니다.");

minm=max; //처음 minm의 초기화를 0으로 했기때문에 비교대상이 안됨.

for(int i=0;i<ArryRoom.length;i++) {

if(ArryRoom[i]<max) {

minm=ArryRoom[i];

minmIndex=i;

}

}

System.out.println("가장 작은 학생의 키는 "+minm+"입니다.");

}



배열에서

int [] arry1 = {10,20,30};

int [] arry2 = arry1;

을 하게되면 arry1과 arry2는 같은 래퍼런스를 공유하게된다.


즉, 같은 공간을 가르키게된다.


그렇기때문에 arry2를 변경하게되면 arry1도 변경이 되고, 그반대로 arry1을 변경하게 되면 arry2가 변경된다.




※ 중복된 숫자가 입력될 경우 중복된 숫자를 찾는 코드를 찾아야한다.

EX) 1 2 3 3 4 5   (X)   -> 이경우는 배열의 -1번째의 숫자를 비교 if(arr[i-1]==arr[1])

     1 2 1 3 1 5   (O)  -> 1번째 3번째 5번째라는 결과가 나와야한다.



package week2;

import java.util.*;

public class Pro {


public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

String [] ArryName = {"영희","철수","길동","영수"};

int [] ArryRoom = new int[4];

int totalHight = 0;

int max = 0;

int maxIndex = 0;

int minm = 0;

int minmIndex = 0;

for(int i=0;i<ArryName.length;i++) {

System.out.print(ArryName[i]+" 키를 입력하세요>>");

ArryRoom[i] = sc.nextInt();

totalHight += ArryRoom[i];

}

System.out.println("학생들의 평균 신장은 "+(totalHight/ArryRoom.length)+" 입니다.");

for(int i=0;i<ArryRoom.length;i++) {

if(ArryRoom[i]>max) {

max=ArryRoom[i];

maxIndex=i;

}

}

System.out.println("가장 키가 큰 학생은 "+ ArryRoom[maxIndex] + "입니다.");

minm=max; //처음 minm의 초기화를 0으로 했기때문에 비교대상이 안됨.

for(int i=0;i<ArryRoom.length;i++) {

if(ArryRoom[i]<minm) {

minm=ArryRoom[i];

minmIndex=i;

}

}

System.out.println("가장 작은 학생의 키는 "+ArryRoom[minmIndex]+"입니다.");

for(int i=0; i<ArryRoom.length-1; i++){         // 자기 자신을 제외한 모든 이름 비교

                 //총 배열 크기 : 4, 이므로 자기는 제외 = -1

            for(int j=i+1; j<ArryRoom.length; j++){     // 앞에 비교한 이름을 비교하지 않는다.

                if(ArryRoom[i] == ArryRoom[j]){

                System.out.println(ArryRoom[i]+"와"+ArryRoom[j]+"같습니다.");

                }

}

}

}

}






[잘못짠코드]


1) for(int i=0;i<ArryRoom.length;i++){

  for(int j=4;j>i;j--)

  if(ArryRoom[i]==ArryRoom[j]){

  break;


2) for(int i=0;i<ArryRoom.length;i++){

  for(int j=4;j>0;j--)

  if(ArryRoom[i]==ArryRoom[j]){

  System.out.println(ArryRoom[i]+" "+" "+ArryRoom[j]+" 같은 값입니다.");

  break;

  }

  else

  continue;

 




반응형