정보보안공부

Java_day08_배열2 본문

Language/Java

Java_day08_배열2

Steady_sp 2017. 2. 18. 20:51

*** ArrayInArray -> 2차원배열

 

 

-> 2차행렬을 표현할떄 for문에서 score.length 는 행의크기를 나타낸다.

-> 열의 크기는 score[i].length로 표현한다.

-> score[i] : i번째행 배열의 주소 참조형 변수

-> score[1][i] : 두번째 배열의 i열의 값

 

*** ArrayArray1 -> 배열을 이용해 과목별 성적의 총합과 평균구하기

 

-> 2차열 배열을 선언하고 (" " + (i+1) + "\t")로 번호를 표시한다.

-> for(int i=0;i<score.length;i++)를통해 한행을 표현한다.

-> for문안에 for문을 선언하여 한행에 각각의 열을 표현한다.(score[i].length로)

-> 열을 표현할때 sum += score[i][j]를 사용해 한행의 값을 다더한다

-> 첫번째 for문안에 sum 과 avg값을 출력한다.

-> 첫번째 for문이 반복되면서 번호 각과목의 점수 총점 평균이 매행마다 실행

-> 주의할점이 int sum = 0, int avg = 0 을 첫번째 for문안에 선언하므로써 한행이 실행되면 초기화 되도록 선언한다.

 

*** ArraySort -> 오름차순정렬

 

 

-> Arrays.sort(myArray) : 오름차순 정렬 메소드

-> for(String s : myArray) : myArray배열을 String s에 옮긴다.

-> System.out.println(s); 를 통해 옮겨진 myArray배열을 출력한다.

 

*** MainArgEx -> main() 매개 변수 사용

 

 

-> Run에서 Debug Configurations 들어간뒤 Argument에서 Program arguments 에 52엔터 30를 입력한뒤 debug를 누르면

-> int num1 = Integer.parseInt(strNum1); -> "52를 정수 52로 변환

-> int num2 = Integer.parseInt(strNum2); -> "30"를 정수 30로 변환

-> int result = num1 + num2; 로 결과값 선언하고 값을 출력

 

-> Argument에 2개의 정수를 입력 했을때 의 모습

-> Argument에 2개가아닌 3개를 입력 했을때 if문 조건에 의해 다음의 문장이 출력된다.

 

*** StrFindEx -> contains와 equals를 이용해 해당문자 일치하면 찾아내기

 

-> String[] sname = new String[] {}으로 String배열을 만든다.

-> String fname; -> fname = s.nextLine(); 으로 fname 값을 입력한다.

-> for(i=0;i<sname.length;i++) for문안에

if(score[i].contains(fname) : fname문자열을 포함하고 있는지 참이면 출력

if(score[i].equals(fname) : fname문자열과 정확히 일치하는지 참이면 출력

-> System.out.println("Index : " + i + ", name : " + sname[i]);으로 출력

-> for문과 if문안에 count++;를 사용하여 if(count==0) "찾는문자열x"을 출력

 

-> contains을 이용하면 해당문자가 포함되있으면 포함된 문자 전체를 출력한다.

 

-> equals을 이용하면 해당문자가 완전히 일치해야한다.

 

*** MainArgEx2

 

 

-> char op = args[0].charAt(1) : args[0]배열의 1번째인덱스를 char형 op로

-> switch문에서 swith(op)가 a s m d 일때 각각의 연산 실행

-> int num1 = Integer.parseInt(args[1]) : args배열의 1번째 인덱스를 정수로

-> int num2 = Integer.parseInt(args[2]) : args배열의 2번째 인덱스를 정수로

 

 

-> char op = ' ' : char형 op가 비어있다고 선언하고

-> switch문에서 swith(args[0])이 문자열 -a -s -m -d 일때 각각의 연산실행

-> switch문에서 문자열의 비교도 가능하다.

 

 

*** ArrayRCSum -> 2차원 3의배수 배열로 각행의 합, 총합구하기

 

-> int [] [] tarr = new int [4][6]; 4행6열의 tarr 2차원 배열 선언

-> for(i=0;i<tarr.length-1;i++) : 4행은 각열의 합이므로 (tarr.length=4) 4-1=3

    i는 0,1,2로 for문 작동

-> for(j=0;j<tarr[i].length-1;j++) : 6열은 각행의 합이므로(tarr[i].length=6) 6-1=5

    i는 0,1,2,3,4로 for문 작동

-> temp = 0을 선언하여 for(j=0;j<tarr[i].length-1;j++)문이 작동할때 마다

    tarr[i][j] += temp, temp += 3으로 행이나 열이 증가할때마다 3씩더한다.

-> 각행의 합은 tarr[i][5] 이므로 for(j)문에 tarr[i][5] += tarr[i][j]로 선언하여

    for(j)문이 동작할때마다 tarr[i][j]의 더한값을 tarr[i][5]에 저장한다.

-> 각열의 합은 for(j)문에 선언하므로써 tarr[3][0] += tarr[i][0];

    tarr[3][1] += tarr[i][1] tarr[3][2] += tarr[i][2] tarr[3][3] += tarr[i][3]

    tarr[3][4] += tarr[i][4] 으로 각각 선언한다.

-> 마지막으로 tarr[3][5] : 4행 6열 마지막은 total 값으로 for(j)문안에

    total += tarr[i][j]로 (행의합열의합을뺸)모든값을 다 더하게 만든다.

 

'Language > Java' 카테고리의 다른 글

Java_day10_클래스2  (0) 2017.02.22
Java_day09_클래스  (0) 2017.02.21
Java_day07_배열  (0) 2017.02.17
Java_day06_랜덤함수,String  (0) 2017.02.16
Java_day05_while,switch  (0) 2017.02.15
Comments