[Java] Java공부 3일차(1)

HwangHyoSang·2022년 7월 4일
0

java공부

목록 보기
5/6

메소드(Metho)

메소드는 코드는 재사용 할 수 있게 해주는 방법 중 하나.

위의 코드에서 main 부분이 바로 메소드!.

메소드의 정의와 호출

package org.opentutorials.javatutorials.method;

public class MethodDemo1 {
    public static void numbering() {
        int i = 0;
        while (i < 10) {
            System.out.println(i);
            i++;
        }
    }

    public static void main(String[] args) {
        numbering();
    }
}

여기서 method는 numbering() 이고 method의 내용물은

 int i = 0;
 	while (i < 10) {
    	System.out.println(i);
        i++;
    }
    

main

main 메소드는 규칙!

Java 개발자는 public static void main(String[] args)가 이끄는 중괄호 안에 실행되기를 기대하는 로직을 위치시켜야 한다. -> 개발자간 약속/이해

메소드가 없다면 같은 코드를 반복작성하면서 코드 작성시 효율성과 코드의 양이 비약적으로 증가할것.

I/O

매개변수와 인자

public class MethodDemo4 {
    public static void numbering(int limit) {
        int i = 0;
        while (i < limit) {
            System.out.println(i);
            i++;
        }
    }

    public static void main(String[] args) {
        numbering(5);
    }
}

위와 같이 작성된 코드에서 numbering 함수에 전달되는 인자는 5 이고

numbering 메소드에서 매개변수는 int limit 이다.

함수 호출을 통해 5를 인자로 입력받은 numbering 함수에서 limit 변수는 함수 내부에서 사용되는데, 인자를 입력받아 함수에서 매개 한다는 의미에서 이러한 변수를 매개변수라고 부른다

복수의 인자

public static void numbering(int init, int limit) {
    int i = init;
    while (i < limit) {
        System.out.println(i);
        i++;
    }
}

위와같은 코드를 작성하면 인자를 두개 입력받아 매개변수로 사용하는 함수가 된다.

return

public class MethodDemo6 {
    public static String numbering(int init, int limit) {
        int i = init;
        // 만들어지는 숫자들을 output이라는 변수에 담기 위해서 변수에 빈 값을 주었다.
        String output = "";
        while (i < limit) {
            // 숫자를 화면에 출력하는 대신 변수 output에 담았다.
            output += i;
            i++;
        }
        // 중요!!! output에 담겨 있는 문자열을 메소드 외부로 반환하려면 아래와 같이 return 키워드 뒤에 반환하려는 값을
        // 배치하면 된다.
        return output;
    }

    public static void main(String[] args) {
        // 메소드 numbering이 리턴한 값이 변수 result에 담긴다.
        String result = numbering(1, 5);
        // 변수 result의 값을 화면에 출력한다.
        System.out.println(result);
    }

Java의 I/O

String[] args

class InputDemo{
public static void main(String[] args){
System.out.println(args.length);
}
}

라는 코드를 작성했을 때,

javac InputDemo.java

컴파일 이후

java InputDemo 1 2 3 4 5 6;

로 InputDemo 클래스 파일을 실행하면

결과는 6이다.

java InputDemo one two three;

결과는 3이다.

이것을 통해서 추론 할 수 있는 것은 자바 에플리케이션 실행 명령인 java InputDemo 뒤에 따라오는 값의 숫자 만큼 변수 args에 어떤 값이 들어있다는 점이다.

앱이 실행 중에 입력 받기

Scanner

import java.util.Scanner;

public class ScannerDemo {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        System.out.println(i*1000);
        sc.close();
    }

}

앱 실행 중 사용자의 입력을 받아 int형 변수 i에 값을 입력하고 i*1000을 출력하는 코드

 import java.util.Scanner;

public class Scanner2Demo {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt()) {
            System.out.println(sc.nextInt()*1000); 
        }
        sc.close();
    }

}

sc.hasNextInt() 사용자가 입력하는것을 기다리고 숫자라면 다음 입력값*1000 을 출력하고, 입력값이 int가 아니라면 0을 return한 뒤 프로그램이 종료되는 코드.

while문을 종료시키는 콛,.

profile
하루의 기억을 정리하는 기록장

0개의 댓글