자바 에서 문자열 비교 ! import javax . swing . JOptionPane ; public class IfDemo { public static void main ( String [ ] args ) { String msg =" 당신 은 어느 계절 을 좋아하 시 나 오 ? "; String season = JOptionPane . showInputDialog ( null , msg ) ; if ( season ==" 봄 ") System . out . println ( " 개나리 , 진달래 "); else if ( season == " 여름 ") System . out . println ( " 장미 , 아카시아 "); else if ( season == " 가을 ") System . out . println ( " 코스모스 , 백합 "); else System . out . println ( " 동백 , 매화 "); }} 좋 아 하 는 계절 을 여름 으로 찍 었 지만 ! !!!! 동백 매화 가 나온다 -> ---------- java Run ---------- 동백 , 매화 Output completed ( 9 sec consumed ) - Normal Termination 그 이유 는 ! 문자열 비교 가 안 되 기 떄문에 season 에 는 주소 가 들 어 있 기 때문 이 다 . 주소 값 과 문자열 비교 가 안 되 징 -> 해결 ! !! 은 ! import javax . swing . JOptionPane ; public class IfDemo { public static void main ( String [ ] args ) { String msg =" 당신 은 어느 계절 을 좋아하 시 나 오 ? "; String season = JOptionPane . showInputDialog ( null , msg ) ; System . out . println ( " season = "+ season ) ; if ( season . equals ( " 봄 ")) System . out . println ( " 개나리 , 진달래 "); else if ( season . equals ( " 여름 ")) System . out . println ( " 장미 , 아카시아 "); else if ( season . equals ( " 가을 ")) System . out . println ( " 코스모스 , 백합 "); else System . out . println ( " 동백 , 매화 "); }}/* compareTo -> 대소문자 구분 * compareToignores ? 이게 대소문자 구분 없이 * equals -> 문자열 비교 이건 스페이스 바도 비교 하 니까 스페이스 바 조심 하 자 ! */-> ---------- java Run ---------- season = 여름 장미 , 아카시아 Output completed ( 3 sec consumed ) - Normal Termination 자바 의 랜덤 만들 기 java . lang 에 MATH 클레 스에 random 이 라는 메소드 를 이용 ( java . lang 은 import 할 필요 없 다 ) 최대 값 을 곱하 고 최소 값 을 더 하 자 -> 이러 면 1 ~ 6 까지 의 랜덤 값 이 나온다 public class RandomDemo { public static void main ( String [ ] args ) { int rand = ( int ) ( Math . random ( ) * 6 + 1 ) ; System . out . println ( " rand ="+ rand ) ; }}-> 1 ~ 6 까지 값 이 랜덤 으로 나온다 switch 문 - 자바 1 . 7 에서 는 스위치 문 에 문자열 도 비교 가 가능 하 다 import javax . swing . JOptionPane ; public class SwitchDomo { public static void main ( String [ ] args ) { String msg =" 당신 은 어느 계절 을 좋아하 시 나 오 ? "; String season = JOptionPane . showInputDialog ( null , msg ) ; System . out . println ( " season = "+ season ) ; switch ( season ) / / swhich ( season . charAt ( 0 ) ) ; { case " 봄 ": System . out . println ( " 개나리 , 진달래 "); break ; case " 여름 ": System . out . println ( " 장미 , 아카시아 "); break ; case " 가을 ": System . out . println ( " 코스모스 , 백합 "); break ; case " 겨울 ": System . out . println ( " 동백 , 매화 "); break ; } }} 입력 받 기 / / java CalcDemo 45 + 67 -> 배열 에 넣 으면 숫자 도 문자 로 읽 음 그래서 이 상태 에서 더하기 하 면 / / 4567 이 나온다 public class CalcDemo { public static void main ( String [ ] args ) { int first = Integer . parseInt ( args [ 0 ] ) ; / / args [ ] 배열 의 0 번 째 방 의 문자 를 int 형 으로 바꿔 줌 int second = Integer . parseInt ( args [ 2 ] ) ;// args [ ] 배열 의 2 번 째 방 의 문자 를 int 형 으로 바꿔 줌 switch ( args [ 1 ] . charAt ( 0 ) ) { case '+': System . out . printf ( "% d +% d =% d \ n ", first , second , ( first + second ) ) ; break ; case '-': System . out . printf ( "% d -% d =% d \ n ", first , second , ( first - second ) ) ; break ; case ' x ': System . out . printf ( "% d x % d =% d \ n ", first , second , ( first * second ) ) ; break ; case '/': System . out . printf ( "% d %% % d =% d \ n ", first , second , ( first / second ) ) ; break ; } } }// java . lang 에 integer 에 parseInt -> static 이 면 클 레스 이름 으로 접근 -> cmd -> java CalcDemo 123 - 456123 - 4156 =- 333 성적 처리 관리 import javax . swing . JOptionPane ; public class SungjukDemo { public static void main ( String [ ] args ) { String name = JOptionPane . showInputDialog ( null , " 당신 의 이름 은 ? "); int kor = JOptionPane . showInputDialog ( null , " 당신 의 국어 점수 는 ? "); }}-> 이렇게 하 면 텍스트 박스 에 int 형 이 안 들어가 서 오류 가 생김 그럴 땐 int kor = Integer . JOptionPane . showInputDialog ( null , " 당신 의 국어 점수 는 ? "); 이렇게 써 줘야 하 는데 불편 하 다 자바 에서 는 형 변환 이 따로 필요 없이 scanner 쓰 면 알 아서 다른 형 으로 읽 어 줌 import java . util . Scanner ; public class SungjukDemo { public static void main ( String [ ] args ) { Scanner scan = new Scanner ( System . in ) ; / / System . in -> 표준 입력 이 라는 뜻 System . out . print ( " 이름 : "); String name = scan . next ( ) ; System . out . print ( " 국어 : "); int kor = scan . nextInt ( ) ; System . out . print ( " 영어 : "); int eng = scan . nextInt ( ) ; System . out . print ( " 수학 : "); int mat = scan . nextInt ( ) ; System . out . printf ( "% s , % d , % d , % d ", name , kor , eng , mat ) ; }}/* java . uitol . Scanner -> static 이 아니 니까 scanner 주소 가 필요 하 다 ( new 로 접근 ) * nextInt -> int 로 return 해줌 * nextDouble -> Double 로 return * next -> string 으로 읽 어 준다 * System . out . print -> outputstrem type ***/ 자바 의 for - 구구단 import java . util . Scanner ; public class ForDemo { public static void main ( String [ ] args ) { int dan ; Scanner scan = new Scanner ( System . in ) ; System . out . printf ( " 몇 단 ? :"); dan = scan . nextInt ( ) ; for ( int i = 0 ; i < 10 ; i ++) { System . out . printf ( "% d * % d = % d \ n ", dan , i , ( dan * i ) ) ; } }} 강화 된 for public class ForDemo 1 { public static void main ( String [ ] args ) { int array [ ] ={ 1 , 2 , 3 , 4 , 5 }; for ( int i = 0 ; i < array . length ; i ++) / / 첨자 로 접근 0 번 째 1 번 째 2 번 째 . . { System . out . print ( array [ i ] +"\ t "); } System . out . println ( ) ; for ( int su : array ) / / array 가 반복 이 되 는데 임시 로 저장 될 int su 라는 변수 에 저장 System . out . print ( su +"\ t "); / / 첨자 를 안 쓴다 . 무조건 첫 번 째 부터 마지막 까지 ! 시작 과 끝 을 몰라도 된다 / / 속도 가 빨라진다 }}-> ---------- java Run ---------- 1 2 3 4 5 1 2 3 4 5 Output completed ( 0 sec consumed ) - Normal Termination 다중 while 문 public class While { public static void main ( String [ ] args ) { int i = 1 ; int j = 1 ; while ( i < 11 ) { System . out . print ( i + "\ t \ t \ t "); j = 1 ; while ( j < 11 ) { System . out . print ( i * j +"\ t "); j ++; } System . out . println ( ) ; i ++; } }}-> ---------- java Run ---------- 1 1 2 3 4 5 6 7 8 9 10 2 2 4 6 8 10 12 14 16 18 20 3 3 6 9 12 15 18 21 24 27 30 4 4 8 12 16 20 24 28 32 36 40 5 5 10 15 20 25 30 35 40 45 50 6 6 12 18 24 30 36 42 48 54 60 7 7 14 21 28 35 42 49 56 63 70 8 8 16 24 32 40 48 56 64 72 80 9 9 18 27 36 45 54 63 72 81 90 10 10 20 30 40 50 60 70 80 90 100 Output completed ( 0 sec consumed ) - Normal Termination 달력 만들 기 자기 가 원 하 는 달 의 1 일 이 서기 며칠 째 인지 알아내 는 달력 프로그램 / 400 년 마다 무조건 윤년 이 거나 4 로 나눠서 나누 어 떨어지 면서 100 으로 나 는 나누 어 떨어지 지 않 는 해 가 윤년 이 다 / / java Mycalender 2011 12 -> 이렇게 누르 면 요일 을 알 수 있 다 ! public class MyCalender { public static void main ( String [ ] args ) { int year = Integer . parseInt ( args [ 0 ] ) ; int month = Integer . parseInt ( args [ 1 ] ) ; int day = 1 ; int sum = 0 ; for ( int i = 1 ; i < 2011 ; i ++ ) { if ( i % 400 == 0 ||( i % 4 == 0 && i % 100 ! = 0 ) ) sum += 366 ; else sum += 365 ; } if ( year % 400 == 0 ||( year % 4 == 0 && year % 100 ! = 0 ) ) { int array [ ] ={ 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; for ( int i = 0 ; i < month - 1 ; i ++){ / / 배열 은 0 부터 시작 이 니까 i = 0 부터 sum += array [ i ] ; } } else { int array [ ] ={ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; for ( int i = 0 ; i < month - 1 ; i ++){ sum += array [ i ] ; } } sum ++; System . out . println ( " sum = "+ sum ) ; }} 이제 요일 까지 알 구 싶 다 ! // java Mycalender 2011 12 -> 이렇게 누르 면 요일 을 알 수 있 다 ! public class MyCalender { public static void main ( String [ ] args ) { int year = Integer . parseInt ( args [ 0 ] ) ; int month = Integer . parseInt ( args [ 1 ] ) ; int day = 1 ; int sum = 0 ; for ( int i = 1 ; i < 2011 ; i ++ ) { if ( i % 400 == 0 ||( i % 4 == 0 && i % 100 ! = 0 ) ) sum += 366 ; else sum += 365 ; } if ( year % 400 == 0 ||( year % 4 == 0 && year % 100 ! = 0 ) ) { int array [ ] ={ 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; for ( int i = 0 ; i < month - 1 ; i ++){ / / 배열 은 0 부터 시작 이 니까 i = 0 부터 sum += array [ i ] ; } } else { int array [ ] ={ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; for ( int i = 0 ; i < month - 1 ; i ++){ sum += array [ i ] ; } } sum ++; / / System . out . println ( " sum = "+ sum ) ; switch ( sum % 7 ) { case 0 : System . out . println ( " SUN "); break ; case 1 : System . out . println ( " MON "); break ; case 2 : System . out . println ( " TUE "); break ; case 3 : System . out . println ( " WED "); break ; case 4 : System . out . println ( " THU "); break ; case 5 : System . out . println ( " FIR "); break ; case 6 : System . out . println ( " SAT "); break ; / / 추가 } }} 그럼 이걸 기본 으로 for 문 돌려서 달력 찍 기 ! !!!! 원 하 는 달 을 찍 어라 ! // java Mycalender 2011 12 -> 이렇게 누르 면 요일 을 알 수 있 다 ! public class MyCalender { public static void main ( String [ ] args ) { int year = Integer . parseInt ( args [ 0 ] ) ; int month = Integer . parseInt ( args [ 1 ] ) ; int day = 1 ; int sum = 0 ; for ( int i = 1 ; i < 2011 ; i ++ ) { if ( i % 400 == 0 ||( i % 4 == 0 && i % 100 ! = 0 ) ) sum += 366 ; else sum += 365 ; } if ( year % 400 == 0 ||( year % 4 == 0 && year % 100 ! = 0 ) ) { int array [ ] ={ 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; for ( int i = 0 ; i < month - 1 ; i ++){ / / 배열 은 0 부터 시작 이 니까 i = 0 부터 sum += array [ i ] ; } } else { int array [ ] ={ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; for ( int i = 0 ; i < month - 1 ; i ++){ sum += array [ i ] ; } } sum ++; / / System . out . println ( " sum = "+ sum ) ; int space = sum % 7 ; / * switch ( sum % 7 ) { case 0 : System . out . println ( " SUN "); break ; case 1 : System . out . println ( " MON "); break ; case 2 : System . out . println ( " TUE "); break ; case 3 : System . out . println ( " WED "); break ; case 4 : System . out . println ( " THU "); break ; case 5 : System . out . println ( " FIR "); break ; case 6 : System . out . println ( " SAT "); break ; } */ int lastday ; switch ( month ) { case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : lastday = 31 ; break ; case 4 : case 6 : case 9 : case 11 : lastday = 30 ; break ; default : if ( year % 400 == 0 ||( year % 4 == 0 && year % 100 ! = 0 ) ) lastday = 29 ; else lastday = 28 ; } int count = 0 ; System . out . println ( " ***" + year +":"+ month +"***"); System . out . println ( " - - - - - - - - - - - - - - - - - - - - - - ----------------------"); System . out . println ( " 日 \ t 月 \ t 火 \ t 水 \ t 木 \ t 金 \ t 土 "); / / 첫 줄 공백 출력 하 기 for ( int i = 0 ; i < space ; i ++){ System . out . print ( "☆\ t "); count ++; } for ( int i = 1 ; i < lastday ; i ++){ System . out . print ( i +"\ t "); count ++; if ( count % 7 == 0 ) System . out . println ( ) ; } }} 마지막 줄 빈 칸 도 별로 채우 기 / / java Mycalender 2011 12 -> 이렇게 누르 면 요일 을 알 수 있 다 ! public class MyCalender { public static void main ( String [ ] args ) { int year = Integer . parseInt ( args [ 0 ] ) ; int month = Integer . parseInt ( args [ 1 ] ) ; int day = 1 ; int sum = 0 ; for ( int i = 1 ; i < 2011 ; i ++ ) { if ( i % 400 == 0 ||( i % 4 == 0 && i % 100 ! = 0 ) ) sum += 366 ; else sum += 365 ; } if ( year % 400 == 0 ||( year % 4 == 0 && year % 100 ! = 0 ) ) { int array [ ] ={ 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; for ( int i = 0 ; i < month - 1 ; i ++){ / / 배열 은 0 부터 시작 이 니까 i = 0 부터 sum += array [ i ] ; } } else { int array [ ] ={ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 }; for ( int i = 0 ; i < month - 1 ; i ++){ sum += array [ i ] ; } } sum ++; / / System . out . println ( " sum = "+ sum ) ; int space = sum % 7 ; / * switch ( sum % 7 ) { case 0 : System . out . println ( " SUN "); break ; case 1 : System . out . println ( " MON "); break ; case 2 : System . out . println ( " TUE "); break ; case 3 : System . out . println ( " WED "); break ; case 4 : System . out . println ( " THU "); break ; case 5 : System . out . println ( " FIR "); break ; case 6 : System . out . println ( " SAT "); break ; } */ int lastday ; switch ( month ) { case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : lastday = 31 ; break ; case 4 : case 6 : case 9 : case 11 : lastday = 30 ; break ; default : if ( year % 400 == 0 ||( year % 4 == 0 && year % 100 ! = 0 ) ) lastday = 29 ; else lastday = 28 ; } int count = 0 ; System . out . println ( " ***" + year +":"+ month +"***"); System . out . println ( " - - - - - - - - - - - - - - - - - - - - - - ----------------------"); System . out . println ( " 日 \ t 月 \ t 火 \ t 水 \ t 木 \ t 金 \ t 土 "); / / 첫 줄 공백 출력 하 기 for ( int i = 0 ; i < space ; i ++){ System . out . print ( "★\ t "); count ++; } for ( int i = 1 ; i < lastday ; i ++){ System . out . print ( i +"\ t "); count ++; if ( count % 7 == 0 ) { System . out . println ( ) ; count = 0 ;} } / / 마지막 줄 별 넣 기 if ( count ! = 0 ) { for ( int i = 0 ; i <( 7 - count ) ; i ++){ System . out . print ( "★\ t "); } } }} 자바 에서 gotopublic class GotoDemo { public static void main ( String [ ] args ) { 여기 : for ( int i = 0 ; i < 10 ; i ++){ System . out . print ( i +"\ t "); int j = 0 ; while ( j < 5 ) { if ( i == 5 && j == 3 ) break 여기 ; j ++; } } }} 자바 의 배열 public class ArrayDemo { public static void main ( String [ ] args ) { int num ; / / 변수 의 선언 double [ ] array ; / / 1 . 배열 의 선언 array 도 4 바이트 주소 만 받 아서 배열 형 이 double 이 던 short 건 뭐 건 4 바이트 num = 5 ;// 할당 array = new double [ 4 ] ; / / 2 . 생 성 array [ 0 ] = 89 . 5 ; / / 3 . 배열 의 할당 / / / / / / / / / / / / / ///////////////////////// / / 배열 할 당 의 다른 방법 int [ ] array 1 = new int [ 5 ] ; / / 1 . 배열 의 선언 및 생 성 array 1 [ 0 ] = 5 ; / / 2 . 배열 의 할당 / / / / / / / / / / / / / / / / / ///////////////////////// / / 배열 의 초기 화 ; int su = 9 ; / / 선언 과 할당 을 한 번 에 int [ ] array 2 = { 1 , 2 , 3 , 4 , 5 }; / / int [ ] array 2 = new int [ ] { 1 , 2 , 3 , 4 , 5 }; }}- / * 1 . 정수 형 배열 --> 0 2 . 실수 형 배열 --> 0 . 0 3 . boolean 형 배열 --> false 4 . char 형 배열 -- > ( '\ 0 ') 값 으로 초기 화 한다 5 . char 형 배열 -> null ( '\ 0 ') 값 번지 로 초기 화 한다 -> 출력 시 null 이 찍히 는 건 널 값 번지 를 문자 화 해서 출력 했 기 때문 에 */ public class ArrayDemo 1 { public static void main ( String [ ] args ) { int [ ] array = new int [ 5 ] ; for ( int i = 0 ; i < array . length ; i ++){ System . out . println ( " array [ " + i +"]"+ array [ i ] ) ; } String [ ] array 1 = new String [ 5 ] ; for ( int i = 0 ; i < array 1 . length ; i ++){ System . out . println ( " array [ " + i +"]"+ array 1 [ i ] ) ; } char [ ] array 2 = new char [ 5 ] ; for ( int i = 0 ; i < array 2 . length ; i ++){ System . out . println ( " array [ " + i +"] = "+ array 2 [ i ] ) ; }}}}}-> ---------- java Run ---------- array [ 0 ] 0 array [ 1 ] 0 array [ 2 ] 0 array [ 3 ] 0 array [ 4 ] 0 array [ 0 ] nullarray [ 1 ] nullarray [ 2 ] nullarray [ 3 ] nullarray [ 4 ] nullarray [ 0 ] = / / 여기 서 막히 는 건 아스키 널 값 은 출력 이 안 되 서 막히 는 거 Output completed ( 0 sec consumed ) - Normal Termination ---- import java . util . Scanner ; public class Arraydemo 2 { public static void main ( String [ ] args ) { int [ ] array = new int [ 4 ] ; String [ ] 과목 ={" 국어 점수 : "," 영어 점수 : ", " 수학 점수 : "}; Scanner scan = new Scanner ( System . in ) ; int sum = 0 ; for ( int i = 0 ; i < 과목 . length ; i ++){ System . out . print ( 과목 [ i ] ) ; int su = scan . nextInt ( ) ; sum += su ; array [ i ] = su ; } array [ 3 ] = sum ; System . out . printf ( "% d , % d , % d , % d \ n ", array [ 0 ] , array [ 1 ] , array [ 2 ] , array [ 3 ] ) ; }}------- public class Hospital { public static void main ( String [ ] args ) { Patient [ ] array = new Patient [ 5 ] ; array [ 0 ] = new Patient ( ) ; array [ 0 ] . days = 8 ; array [ 1 ] = new patient ( ) ; array [ 1 ] . days = 10 ; int sum = array [ 0 ] . days + array [ 1 ] . days ; }} class Patient { int days ; }--------- public class ArrayDemo 3 { public static void main ( String [ ] args ) { / * boolean [ ] array = { false , false , true , false }; char [ ] array 1 = {' A ',' B ',' C '}; double [ ] array 2 = { 89 . 5 , 78 . 9 }; String [ ] array 3 = {" Hello "," World "," Good "," Java "," Oracle "," a "}; / / 배열 은 크기 가 같 아야 하 는데 String 은 크기 가 다르 다 . 왜 . . / / Reperence 배열 은 무조건 배열 한 칸 에 4 바이트 씩 주소 값 이 들어간다 for ( int i = 0 ; i < array 3 . length ; i ++) { system . out . printf ( "% s \ n ", array 3 [ i ] ) ; }*/ Student [ ] array ; array = new student [ 2 ] ; Student 철수 = new Student ( ) ; Student 영희 = new Student ( ) ; array [ 0 ] = 철수 ; array [ 1 ] = 영희 ; array [ 0 ] . kor = 100 ; array [ 1 ] . kor = 89 ; }} class Student { int kor ; double avg ;} 다 차원 배열 / * 자바 의 다 차원 배열 1 . Rectangular Array -> 층 과 열 의 개수 를 알 때 ? int [ ] [ ] array = new int [ 2 ] [ 3 ] 2 . Ragged Array -> 층 은 알 지만 열 의 개수 를 정확히 모를 때 다르 게 할 때 ? int [ ] [ ] array = new int [ 3 ] [ ] ;*/// rectangular array -> 배열 의 층 과 열 을 알 때 ? public class ArrayDemo 4 { public static void main ( String [ ] args ) { / * int [ ] [ ] array ;// 선언 array = new int [ 2 ] [ 3 ] ;// 생성 array [ 0 ] [ 0 ] = 4 ; array [ 0 ] [ 1 ] = 5 ; / / 할당 / / / / / / / / / / / / / / / ///////////////////////// int [ ] [ ] array = new int [ 2 ] [ 3 ] ; / / / / / / / / / / / / / / / / / / / / / ///////////////////////*/ int [ ] [ ] array = new int [ ] [ ] {{ 1 , 2 , 3 },{ 4 , 5 , 6 }}; System . out . println ( array . length ) ; System . out . println ( array [ 0 ] . length ) ; }}-> ---------- java Run ---------- 2 / / 층 의 개수 3 / / 0 층 의 열 의 개수 를 나타내 줌 Output completed ( 0 sec consumed ) - Normal Termination / * 자바 의 다 차원 배열 1 . Rectangular Array int [ ] [ ] array = new int [ 2 ] [ 3 ] 2 . Ragged Array -> 층 의 개수 는 알 지 int [ ] [ ] array = new int [ 3 ] [ ] ; */// rectangular array -> 배열 의 층 과 열 을 알 때 ? public class ArrayDemo 4 { public static void main ( String [ ] args ) { / * int [ ] [ ] array ;// 선언 array = new int [ 2 ] [ 3 ] ;// 생성 array [ 0 ] [ 0 ] = 4 ; array [ 0 ] [ 1 ] = 5 ; / / 할당 / / / / / / / / / / / / / / / ///////////////////////// int [ ] [ ] array = new int [ 2 ] [ 3 ] ; / / / / / / / / / / / / / / / / / / / / / ///////////////////////*/ int [ ] [ ] array = new int [ ] [ ] {{ 1 , 2 , 3 },{ 4 , 5 , 6 }}; for ( int i = 0 ; i < array . length ; i ++ ) { for ( int j = 0 ; j < array [ i ] . length ; j ++){ System . out . printf ( " array [ % d ] [ % d ] =% d \ n ", i , j , array [ i ] [ j ] ) ; } System . out . println ( ) ; } }}->---------- java Run ---------- array [ 0 ] [ 0 ] = 1 array [ 0 ] [ 1 ] = 2 array [ 0 ] [ 2 ] = 3 array [ 1 ] [ 0 ] = 4 array [ 1 ] [ 1 ] = 5 array [ 1 ] [ 2 ] = 6 Output completed ( 0 sec consumed ) - Normal Termination / / Ragged ( Jagged ) Array -> 층 만 기술 public class ArrayDemo 5 { public static void main ( String [ ] args ) { / * int [ ] [ ] array = new int [ 4 ] [ ] ; array [ 0 ] = { 1 , 2 }; array [ 1 ] ={ 3 , 4 , 5 , 6 }; array [ 2 ] ={ 7 , 8 , 9 , 10 , 11 }; array [ 3 ] ={ 12 };*/ int [ ] [ ] array = { { 1 , 2 },{ 3 , 4 , 5 , 6 },{ 7 , 8 , 9 , 10 , 11 }, { 12 } }; for ( int i = 0 ; i < array . length ; i ++){ for ( int j = 0 ; j < array [ i ] . length ; j ++){ System . out . printf ( " array [ % d ] [ % d ] =% d \ t ", i , j , array [ i ] [ j ] ) ; } System . out . println ( ) ; }}}-> ---------- java Run ---------- array [ 0 ] [ 0 ] = 1 array [ 0 ] [ 1 ] = 2 array [ 1 ] [ 0 ] = 3 array [ 1 ] [ 1 ] = 4 array [ 1 ] [ 2 ] = 5 array [ 1 ] [ 3 ] = 6 array [ 2 ] [ 0 ] = 7 array [ 2 ] [ 1 ] = 8 array [ 2 ] [ 2 ] = 9 array [ 2 ] [ 3 ] = 10 array [ 2 ] [ 4 ] = 11 array [ 3 ] [ 0 ] = 12 Output completed ( 0 sec consumed ) - Normal Termination ----- public class ArrayDemo 6 { public static void main ( String [ ] args ) { int [ ] array = { 1 , 2 , 3 , 4 , 5 }; output ( array ) ; } static void output ( int [ ] array ) { / / 배열 의 주소 가 넘 어 왕 { for ( int i = 0 ; i < array . length ; i ++) System . out . print ( array [ i ] +"\ t "); } array [ 0 ] = 1000 ;}}-> ---------- java Run ---------- 1 2 3 4 5 1000 Output completed ( 0 sec consumed ) - Normal Termination / / 1 차원 배열 은 배열 의 이름 이 시작 주소 다 . public class ArrayDemo 6 { public static void main ( String [ ] args ) { int [ ] array = new int [ 4 ] ; input ( array ) ; output ( array ) ; } static void input ( int [ ] array ) { array [ 0 ] = 1 ; array [ 1 ] = 2 ; array [ 2 ] = 3 ; array [ 3 ] = 4 ; } static void output ( int [ ] array ) { / / 배열 의 주소 가 넘 어 왕 { for ( int i = 0 ; i < array . length ; i ++) System . out . print ( array [ i ] +"\ t "); } }}-> ---------- java Run ---------- 1 2 3 4 Output completed ( 0 sec consumed ) - Normal Termination 모두 주소 넘어가 는 것 을 주의 ! 다 차원 배열 에서 도 주소 넘어가 는 걸 조심 ! / / 2 차원 배열 은 배열 의 이름 이 시작 주소 이 다 . public class Arraydemo 7 { public static void main ( String [ ] args ) { int [ ] [ ] array = {{ 1 , 2 , 3 },{ 4 , 5 , 6 }}; output ( array [ 0 ] ) ; / / 다 차원 배열 의 0 번 째 층 을 넘겨 줘라 } static void output ( int [ ] array ) { / / 배열 의 주소 가 넘 어 왕 { for ( int i = 0 ; i < array . length ; i ++) System . out . print ( array [ i ] +"\ t "); } }}-> ---------- java Run ---------- 1 2 3 Output completed ( 0 sec consumed ) - Normal Termination / / 2 차원 배열 은 배열 의 이름 이 시작 주소 이 다 . public class Arraydemo 7 { public static void main ( String [ ] args ) { int [ ] [ ] array = {{ 1 , 2 , 3 },{ 4 , 5 , 6 }}; output ( array ) ; } static void output ( int [ ] [ ] array ) / / 배열 의 주소 가 넘 어 왕 { for ( int i = 0 ; i < array . length ; i ++){ for ( int j = 0 ; j < array [ i ] . length ; j ++){ System . out . print ( array [ i ] [ j ] +"\ t "); } System . out . println ( ) ; } }}-> ---------- java Run ---------- 1 2 3 4 5 6 Output completed ( 0 sec consumed ) - Normal Termination