//dan1, dan2를 args(인자)로 만들어 구구단 구현(method)

public class MethodEx3{
	public static void methodA(int dan1, int dan2){  //반환값이 없는 methodA 생성 및 인자 int a, int b 정의
    	for(int j = dan1; j<=dan2; j++){
        	for(int i=1; i<=9; i++){
            	System.out.println(j + " * " + i + " = " + (j * i));
             }
         System.out.println();
         }
     }

public static void main(String[] args){
	methodA(2, 7);                                  //인자 2, 7 전달 및 호출 
    }
  }

int dan1, int dan2에 각각 2와 7을 전달하여 2단부터 7단까지 구구단을 출력.

 

 

 

 

 

 

 

 

 

 

 

문제) 주어진 배열값 중 홀수단(구구단 홀수)을 출력하시오.

public class MethodEx4{
	public static void main(String[] args){
    	int[] array = {2, 5, 7, 3};
        method(array);						  //메소드 호출
        
    }
    
    public static void method(int[] array){
    	for(int i=0; i<array.length; i++){     //배열 array의 길이만큼 반복
        	for(int j=1; j<10; j++){
            	if(array[i] % 2 != 0){         //홀수만 출력하기 위해 2로 나눴을 때 0이 아닌 것 선별
                System.out.print(array[i] + " * " + j + " = " + (array[i]*j));
                }
                
             }System.out.println();
         }
         }
 }

배열 {2, 5, 7, 3}에서 홀수인 5, 7, 3인 홀수단이 정상적으로 출력되었다.

 

'JAVA' 카테고리의 다른 글

[JAVA] 생성자 오버로딩  (0) 2020.09.11
[JAVA] 클래스와 객체 -1  (0) 2020.09.08
[JAVA] 메소드-2  (0) 2020.09.07
[JAVA] 메소드  (0) 2020.09.07
[JAVA] 데이터 타입 (다차원 배열)  (0) 2020.08.31
//메소드 기본 예제

public class MethodEx{

	public static int sum(int a, int b){  //메서드 sum 생성 및 매개변수(int a, int b)정의
    	return a+b;                       //return 값을 a+b로 구현
	}

    
    public static void main(String[] args){
    	int result = sum(10, 10);		  //int result란 변수에 메소드sum과 매개변수 각각 10씩 정의
        System.out.println("메소드 sum 호출 : "+result);  //메소드 sum출력
    }
}

sum이라는 메소드를 만들어서 매개변수(인자)를 각각 int a, int b로 주고

return값을 a+b로 구현하였고  main에서  메서드 sum을 호출하는데 인자를 각각 10,10 씩 정의하여 result가 20이 출력되는 것을 확인할 수 있다.

 

 

 

//메소드 기본 예제2

public class MethodEx2 {

	public static void methodA(){   //반환값(return)이 있는 메소드methodA 생성
    	int sum = 0;
        for(int i=1; i<=10; i++){   //1부터 10까지의 합
        	sum += i;               //결과를 sum에 저장
        }
        System.out.println("결과1 : " + sum);
     }
     
     public static void methodB(){	//반환값(return)이 없는 메소드 methodB 생성
     	int sum = 0;
        for(int i=1; i<=10; i++){   //똑같이 1부터 10까지의 합을 sum에 저장
        	sum += i;
        }
        return sum;					//sum값을 반환
     }
     
     public static void main(String[] args){
     	methodA();					//methodA를 호출
        int sum = methodB();		//methodB를 호출
        System.ou.println("결과2 : " + sum);
     }
 }
        

리턴값이 있냐 없냐에 따라 메소드를 호출하는 방법이 조금 다르다.

먼저 methodA( ) 메소드는 리턴값이 없기 때문에 변수에 저장할 내용이 없다. 그래서 단순히 메소드만 호출하면 되고 methodB( )는 1부터 10까지의 합인 55를 리턴하므로 이것을 저장할 변수가 필요하다. 리턴값을 받기 위해 메소드의 리턴 타입인 int 타입으로 sum을 선언하여 methodB( )를 호출한다.

'JAVA' 카테고리의 다른 글

[JAVA] 클래스와 객체 -1  (0) 2020.09.08
[JAVA] 메소드-3  (0) 2020.09.07
[JAVA] 메소드  (0) 2020.09.07
[JAVA] 데이터 타입 (다차원 배열)  (0) 2020.08.31
[JAVA] 데이터 타입 (배열2)  (0) 2020.08.31

메소드(method)는 객체의 동작에 해당하는 중괄호 블록 { }을 말한다.  이 중괄호 블록이 가지는 이름이 

바로 메소드 이름이다.

 

메소드를 호출하게 되면 중괄호 블록에 있는 코드들이 실행된다. 이 메소드는 외부로부터 매개값을 받을 수도 있고, 

실행 후 어떤 값을 리턴할 수도 있다. 

 

//메소드 선언

[접근 제어자][수정자][반환형] 메소드 명 (매개변수) {
		실행 구문(구현);
 }
 

 

*접근 제어자(Modifies)
: private, default(friendly), protected, public 

*수정자
: static, final, abstract, native....

*반환형(return type)
: 자바 데이터 자료형(기본형, 참조형)전부 사용할 수 있음.
: void - 반환형이 없는 메소드 정의시 사용.

*메소드명 : 식별자로 임의의 이름 정의.
*인자(Arguments) : 매개 변수라고하며 메소드 호출시 데이터를 전달하기 위한 용도로 사용.

 

//메소드 표현

표현1)

public void int intA() {
	구현;
    return n;  //n -> int 기본 자료형에 맞는 데이터 변환
 }
 
 
 표현2)
 
 public void int intB(int a, ....){
 	구현;
    //void는 retrun구문을 사용하지 않음
 }

 

메소드를 사용하면 기존의 복잡한 코드를 분리함으로써 메소드의 기능 그리고 코드의 복잡성을 줄일 수 있고

필요할 때 호출하여 사용할 수 있는 장점이 있다.

'JAVA' 카테고리의 다른 글

[JAVA] 메소드-3  (0) 2020.09.07
[JAVA] 메소드-2  (0) 2020.09.07
[JAVA] 데이터 타입 (다차원 배열)  (0) 2020.08.31
[JAVA] 데이터 타입 (배열2)  (0) 2020.08.31
[JAVA] 데이터 타입 (배열)  (0) 2020.08.31

 

값들이 행과 열로서 구성된 배열을 2차원 배열이라고 한다.

2차원 배열은 가로 인덱스와 세로 인덱스를 사용한다.

 

//2(행) x 3(열)  

int[][] scores = new int[2][3];

 

 

/*다차원 배열(array) 행과 열

표현
-int[ ] [ ] arr = new int [n][n];
-int[ ] [ ] arr = {[n, n}
			   , {n, n}
			   , {n, n}};] -3행 2열

*/


int[][] intArray = new int [3][2];

int[][] intArray = {{n, n},
                    {n, n},
                    {n, n}};
                    

 

 

public static void main(String[] args) {
		int[][] arr = new int[3][2];
		arr[0][0] = 1;
		arr[0][1] = 2;
		arr[1][0] = 3;
		arr[1][1] = 4;
		arr[2][0] = 5;
		arr[2][1] = 6;
		System.out.println("arr[0][0] = " + arr[0][0]);
		System.out.println("arr[0][1] = " + arr[0][1]);
		System.out.println("arr[1][0] = " + arr[1][0]);
		System.out.println("arr[1][1] = " + arr[1][1]);
		System.out.println("arr[2][0] = " + arr[2][0]);
		System.out.println("arr[2][1] = " + arr[2][1]);

		System.out.println();

		for (int i = 0; i < arr.length; i++) { // 행의 길이 -3
			for (int j = 0; j < arr[i].length; j++) { // 2
				System.out.println("arr[ " + i + "] [" + j + " ]  = " + +arr[i][j]);

			}
		}
    }

 

int[][] array = { { 95, 86 }, { 83, 92, 96 }, { 78, 83, 93, 87, 88 } };
		int sum = 0;
		int max = 0;
		int count = 0;
		
		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array[i].length; j++) {
				sum += array[i][j];
				count ++;
				
				
				if (array[i][j] > max) {
					max = array[i][j];
				}
			
			}
		}
		System.out.println("총 합은:  " + sum);
		System.out.println("평균은 : " + sum / count);
		System.out.println("최고값은 : " + max);
		System.out.println("배열의 총 개수 : " + count);

'JAVA' 카테고리의 다른 글

[JAVA] 메소드-2  (0) 2020.09.07
[JAVA] 메소드  (0) 2020.09.07
[JAVA] 데이터 타입 (배열2)  (0) 2020.08.31
[JAVA] 데이터 타입 (배열)  (0) 2020.08.31
[JAVA] 데이터 타입  (0) 2020.08.31

배열 변수를 미리 선언한 후, 값 목록들이 나중에 결정되는 상황이라면 new연산자를 사용해서 값 목록을 지정해주면 된다. new 연산자 바로 뒤에는 배열 변수 선언에서 사용한 "타입[]"을 붙여주고 중괄호{}안에 값들을 나열해 주면 된다.

 

변수 = new 타입[] {값0, 값1, 값2, 값3};

String[] names = null;
names = new String[] {"홍길동", "이순신", "세종대왕"};

 

값의 목록을 가지고 있지 않지만 ,향후 값들을 저장할 배열을 미리 만들고 싶다면 new연산자로 배열 객체를 생성시킬 수 있다.

 

타입[] 변수 = new 타입[길이];

//길이는 배열이 저장될 수 있는 값의 수를 말하고 new연산자로 배열을 생성할 경우에는
//이미 배열 변수가 선언된 후에도 가능하다. 

타입[] 변수 = null;
변수 = new 타입[길이];

//길이가 5인 int[]배열 

int [] intArray = new int[5];

//intArray 배열은 int배열이므로 intArray[0] ~ intArray[4]까지 기본값 0으로 초기화된다.

 

 

/*배열
-같은 자료형의 데이터를 여러개 저장하기 위한 메모리 공간
-생성된 메모리 공간에 index를 이용하여 각 기억장소를 구분함.
-배열크기는 length를 사용하여 구함.abstract

표현
-int[]arr = new int[n];(n개 만큼 0으로 초기화)  -> arr[0] = 1;
-int[]arr = {1, 2, 3};
-int[]arr = new int[] {1, 2, 3};*/

public class ArrayEx {

	public static void main(String[] args) {
		int[] arr = new int[3];
		
		arr[0] = 10;
		arr[1] = 20;
		arr[2] = 30;

		for (int i = 0; i < arr.length; i++) {
			System.out.println("arr[" + i + "] = " + arr[i]);
		}

		System.out.println();

		String[] str = new String[3];

		str[0] = "Hello";
		str[1] = "Hi";
		str[2] = "Good";

		for (int j = 0; j < str.length; j++) {
			System.out.println("str[" + j + "] = " + str[j]);
		}
		
		System.out.println();

		int[] arr2 = { 100, 200, 300};
		
		for(int val : arr2) {
			System.out.println(val);
		}
	}

}

 

'JAVA' 카테고리의 다른 글

[JAVA] 메소드  (0) 2020.09.07
[JAVA] 데이터 타입 (다차원 배열)  (0) 2020.08.31
[JAVA] 데이터 타입 (배열)  (0) 2020.08.31
[JAVA] 데이터 타입  (0) 2020.08.31
[JAVA] 조건문과 반복문 (5)  (0) 2020.08.29

같은 타입의 많은 양의 데이터를 다루는 프로그램에서는 배열을 사용하면 좀 더 효율적으로 데이터를 다룰 수 있다.

배열은 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료구조이다.

 

점수를 나열한 배열을 예로 배열의 각 인덱스는 각 항목의 데이터를 읽거나, 저장하는데 사용되며 

배열이름[인덱스] 로 기입된다.

배열이름[0]은 83 배열이름[1]은 90 배열이름[2]는 87 값을 가진다.

 

 

배열은 같은 타입의 데이터만 저장할 수 있으며 int 배열은 int값만 저장가능하고, String 배열은 문자열만 저장 가능하다. 배열은 선언과 동시에 저장할 수 있는 데이터 타입이 결정된다. 만약 다른 타입의 값을 저장하려고 하면 타입 불일치(Type mismatch) 컴파일 오류가 발생한다. 또한 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다. 

 

 

배열을 사용하기 위해선 우선 배열 변수를 선언해야 한다. 

 

타입[] 변수;

int[] intArray;
String[] stringArray;
double[] doubleArray;

 또는 

 

타입 변수[];

int intArray[];
String stringArray[];
double doubleArray[];

이렇게 두 가지 형태로 작성이 가능하다.

 

만약 배열에 저장할 값이 있다면 이런식으로 배열 객체를 만들 수 있다.

데이터타입[] 변수 = {값0, 값1, 값2, ...};

int[] score = {80, 90, 85, 75};
String[] str = {"홍길동", "임꺽정", "백두산"};

+ Recent posts