본문 바로가기
Java/Java 학원 복습

자바 배열 실습문제, 메소드

by code2772 2022. 10. 3.

[ 목차 ]

    728x90
    반응형

    # 배열 실습문제

    - 1.

    package day06;
    
    ​
    
    public class ArrayTest {
    
    ​
    
    public static void main(String[] args) {
    
    // 배열 선언 후 1~10까지 값 넣기
    
    // int ar[] = new int[5]; 가능
    
    ​
    
    int[] arData = new int[10];// 이 방식으로 사용하자. (java)
    
    ​
    
    for (int i = 0; i < arData.length; i++) {
    
    arData[i] = i + 1;
    
    }
    
    for (int i = 0; i < arData.length; i++) {
    
    System.out.println(arData[i]);
    
    }
    
    }
    
    ​
    
    }
    
    ​

    - 2.

    package day06;
    
    ​
    
    import java.util.Scanner;
    
    ​
    
    public class ArrayTask {
    
    ​
    
    public static void main(String[] args) {
    
    // 100~1까지의 값 배열에 넣고 출력
    
    ​
    
    /*
    
    * int[] arData = new int[100];// 이 방식으로 사용하자. (java)
    
    *
    
    * for (int i = 0; i < arDate.length; i++) { arData[i] = 100-i ;
    
    * System.out.println(arData[i]); } for (int i = 0; i < arDate.length; i++) {
    
    * System.out.println(arData[i]); }
    
    */
    
    // 1~10까지 값을 배열에 넣고 총 합 구하기
    
    // int[] arNumber = new int[10];
    
    // int total =0;
    
    //
    
    // for(int i=0;i<arNumber.length;i++) {
    
    // arNumber[i] = i+1;
    
    // }
    
    //
    
    // for(int i=0;i<arNumber.length;i++) {
    
    // arNumber[i] = i+1;
    
    // total += arNumber[i];
    
    ​
    
    // 3명의 수학점수를 사용자에게 입력받아 배열에 저장하고 평균 점수를 출력
    
    // Scanner sc = new Scanner(System.in);
    
    // int [] arMath = new int[3];
    
    // String msg = "번 학생의 수학점수 >>";
    
    // int total =0;
    
    //
    
    // for(int i=0; i<arMath.length;i++) {
    
    // System.out.print(i+ 1+ msg);
    
    // arMath[i] = sc.nextInt();
    
    // }
    
    // for(int i=0; i<arMath.length;i++) {
    
    // total += arMath[i];
    
    // }
    
    // System.out.println("평균 >>"+ total/3.0);
    
    // }
    
    // 0,1,2,3,4,0,1,2,3,4 배열에 담고 출력;
    
    // int [] arData = {0,1,2,3,4,0,1,2,3,4};
    
    // int [] arData = new int[5];
    
    // for(int i=0; i<arData.length;i++) {
    
    // arData[i] = i%5;
    
    // }
    
    // for(int i=0; i<arData.length;i++) {
    
    // System.out.print(arData[i]);
    
    // }
    
    // A~F 까지 배열에 담고 출력 A:65
    
    char[] arData = new char[6];
    
    for (int i = 0; i < arData.length; i++) {
    
    arData[i] = (char) (i + 65);
    
    }
    
    for (int i = 0; i < arData.length; i++) {
    
    System.out.print(arData[i]);
    
    }
    
    ​
    
    }
    
    ​
    
    }

    - 3.

    package day06;
    
    ​
    
    import java.util.Scanner;
    
    ​
    
    public class ArrayTask2 {
    
    ​
    
    public static void main(String[] args) {
    
    // //A~F 까지 중 C를 제외하고 저장하고 출력
    
    // char[] arData = new char[5];
    
    // int temp = 0;
    
    // for(int i=0;i<arData.length;i++) {
    
    // temp=i;
    
    // if(temp>1) {temp++;}// 변경 필요한 부분부터 증감하여 C값을 제외해주기
    
    // //continue; 사용시 그 해당 부분을 공백으로 사용하여 주소값을 차지하여 문제가 발생한다.
    
    //
    
    // arData[i] = (char)(temp+65);
    
    // }
    
    // for(int i=0; i<arData.length;i++) {
    
    // System.out.println(arData[i]);
    
    // }
    
    ​
    
    // 5개의 정수를 입력한 뒤 배열에 담고 최대/최소 값 출력하기
    
    int[] arData = new int[5];
    
    Scanner sc = new Scanner(System.in);
    
    String msg = "번쨰 정수 입력>>";
    
    int max = 0, min = 0;
    
    ​
    
    for (int i = 0; i < arData.length; i++) {
    
    System.out.println(i + 1 + msg);
    
    arData[i] = sc.nextInt();
    
    }
    
    max = arData[0];
    
    min = arData[0];
    
    ​
    
    for (int i = 1; i < arData.length; i++) {// 0이 이미 들어와 있기 때문에 1부터
    
    if (max < arData[i]) {
    
    max = arData[i];
    
    }
    
    if (min > arData[i]) {
    
    min = arData[i];
    
    }
    
    // else if 사용하는 경우 민 값고 확인을 하기 힘들다.
    
    }
    
    System.out.println("최대값 :" + max);
    
    System.out.println("최소값 :" + min);
    
    }
    
    }

    # 2차원 배열 - 배열 안에 배열

    - 2차원 배열 선언

    - 자료형[][] 배열명 = new 지료형[행][열]; 가로/ 세로 내려감

    - 자료형[][] 배열명 = new 지료형{{값1, 값2...},{값1, 값2...},{값1, 값2...},{값1, 값2...},{값1, 값2...}};

    - ex) int [][] arr = new int[3][5];

    - 2차원 배열의 길이

    - arrData.length = arrData[0].length; (해당 주소값의 길이) : 행의 길이

    - arrData[i].length : 열의 길이

    package day06;

    public class ArrayTest2 {

    public static void main(String[] args) {

    //2행 3열

    int[][] arrData = {{3,4,5},{1,2,3}};

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

    for(int j=0;j<arrData[i].length;j++) {

    System.out.println(arrData[i][j]);

    }

    }

    }

    }

    package day06;

    public class ForTask {

    public static void main(String[] args) {

    /*

    * *

    * **

    * ***

    * *****

    * ******

    */

    for(int i=0;i<5;i++) {

    for(int j=0;j<i+1;j++) {

    System.out.print("*");

    }

    System.out.println();

    }

    }

    }

    # 함수와 메소드

    - 클래스 밖에 선언되어 있다면 함수라고 부르지만 클래스 내부에 선언되어 있는 함수는 메소드라고 부른다.

    - 자바에서는 모든 함수가 클래스 내부에서 선언되기 때문에 메소드만 존재한다.

    - 개념 상 함수가 메소드보다 더 큰 범주이므로 메소드를 함수라고 불러도 되지만, 자바는 메소드만 존재하므로 메소드라고 부르는게 좋다.

    - 메소드

    1. 기능

    2. 이름 뒤에 소관호

    3. 단, 키워드 뒤에 소괄호는 메소드가 아니다.

    - 메소드는 선언과 구현

    - 리턴타입 메소드명(자료형 매개변수,.................) <- 선언부

    - { <- 구현부(기능적부분)

    - 실행할문장;

    - return 리턴값;

    - }

    1. 리턴타입 : 반환할 값이 있다면 반환 값의 자료형을 작성한다. 없다면 void를 작성

    2. 메소드명 : 동사로 작성한다. EX) add, sum.......

    3. 매개변수 : 외부에서 전달받을 값이 있다면, 자료형과 순서에 맞게 선언해준다.

    (자료형이 반드시 필요하다.)

    4. 실행할 문장 : 생략이 가능하다. 메소드의 기능을 구현하는 코드를 작성한다.

    5. return : 생략이 가능하다, 리턴타입과 묶인다.

    - 메소드의 선언 순서

    1. 기능을 생각한다.(숫자를 더해주는 기능)

    2. 기능에 알맞은 메소드 명을 생각한다(가능하면 동사로,add, sum. plus)

    3. 반환타입이 생각나지 않는다면 우선 void로 작성한다

    void add(){}

    4. 매개변수를 생각한다. (받아올 값/ 생각이 나지 않으면 비워든다 일단)

    void add(int num1, int num2){}

    5. 실행할 문장을 작성한다.

    - void add(int num1, int num2){

    - int result = num1 + num2 ;

    - }

    6. 리턴 값을 생각한다.

    - int add(int num1, int num2){

    - int result = num1 + num2 ;

    - return result;

    - }

    - 메소드 추가 설명

    1. return 타입이 있는경우 하나의 값으로 불 수 있다.

    2. 메소드는 기능을 저장하는 것이라고 볼 수 있다.(우리끼리하는 소리 면접때X)

    package day06;

    public class MethodTest {

    int addTen(int num) {

    int result = num + 10;

    return result; // 정수형 타입

    }

    public static void main(String[] args) {

    MethodTest methodTest = new MethodTest();

    System.out.println(methodTest.addTen(3));

    }

    }

    반응형

    'Java > Java 학원 복습' 카테고리의 다른 글

    자바 클래스 - 학원  (0) 2022.10.03
    자바 학원 필기 7  (0) 2022.10.03
    자바 학원 필기 5  (0) 2022.10.03
    자바 학원 필기 4  (1) 2022.10.03
    자바 학원 필기 3  (1) 2022.10.03