1. 반복문 3가지의 무한루프 만드는 방법은?

1-1. for문

public class Main {
	public static void main(String[] args) {
		for (; ;) { // 초기 조건, 종료 조건, 증감 조건이 명확하지 않을시에 무한루프가 발생한다.
			...
		}
}

1-2. while문

public class Main {
	public static void main(String[] args) {
		while (true) {
			...
			// break 키워드가 별도로 없을시에 무한루프가 발생한다.
		}
}

1-3. while문

public class Main {
	public static void main(String[] args) {
		int num = 0;
		while (true) {
			if ((num >= 5) && (num >= 0)) { // 탈출 하는 조건식이 명확하지 않을시에 무한루프가 발생한다.
				break;
			}
		}
}

 

2. 구구단 출력을 하시오.

public class Main {
	public static void main(String[] args) {
		for (int i = 2; i <= 9; i++) {
			for (int j = 1; j <= 9; j++) {
				System.out.println(i + " x " + j + " = " + (i * j));
			}
			System.out.println();
		}
}

 

3. 짝수단만 찍으시오.

public class Main {
	public static void main(String[] args) {
		for (int i = 2; i <= 9; i+=2) {
			for (int j = 1; j <= 9; j++) {
				System.out.println(i + " x " + j + " = " + (i * j));
			}
			System.out.println();
		}
}

 

4. 3의 배수인 단만 출력하시오.(3.6.9단만 출력)

public class Main {
	public static void main(String[] args) {
		for (int i = 3; i <= 9; i+=3) {
			for (int j = 1; j <= 9; j++) {
				System.out.println(i + " x " + j + " = " + (i * j));
			}
			System.out.println();
		}
}

 

5. 아래의 Star를 찍으시오.

5-1. 5열 종대로 별 찍기

public class Main {
	public static void main(String[] args) {
		for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= 5; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}
}

5-2. 계단식으로 별 찍기

public class Main {
	public static void main(String[] args) {
		for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}
}

5-3. 역계단식으로 별 찍기

public class Main {
	public static void main(String[] args) {
		for (int i = 1; i <= 5; i++) {
			for (int j = 5; j >= i; j--) {
				System.out.print("* ");
			}
			System.out.println();
		}
}

5-4. 반전하여 계단식으로 별 찍기

public class Main {
	public static void main(String[] args) {
		for (int i = 1; i <= 5; i++) {
			for (int j = 5; j > i; j--) {
				System.out.print("  ");
			}
			for (int j = 1; j <= i; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}
}

5-5. 피라미드식으로 별 찍기

public class Main {
	public static void main(String[] args) {
		for (int i = 1; i <= 5 ; i++) {
			for (int j = 5; j > i; j--) {
				System.out.print(" ");
			}
			for (int j = 1; j <= i; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}
}

 

6. 함수는 어떻게 알아 볼수 있는가?

: 소문자로 시작하는 이름, 파라미터를 입력할 수 있는 공간’()’, 스코프를 의미하는 키워드 ‘{}’등 으로 판별이 가능하며 예를 들어, System.out.println()과 같은 클래스명에 따라붙는 .println() 키워드로 println이 함수임을 알 수 있다.

 

7. 함수는 어떻게 만드는가?

: 클래스 내에서 main 메소드와 동일한 레벨의 기준으로 선언이 가능하다. 예를들면

private static void getStar(int num) {
		for (int i = 1; i <= num; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}
	} ... 와 같이

접근지정자, 동적여부, 데이터 타입, 이름(파라미터) 순으로 각 위치마다 명확한 키워드를 기입하여 스코프내에 변수 선언 및 초기화와 조건문, 출력문등을 기입해 기능을 만든다.

 

8. 함수는 어떻게 써먹는가?

: 선언한 함수는 main 메소드나 다른 메소드에서 호출을 할 수 있는데, 예를들면

public static void main(String[] args) {
		int num = 5;
		getStar(num);

	} ... 와 같이 함수명과 파라미터 기입을 통해 기능을 호출한다.

 

9. 아래의 함수를 만드시오.

함수이름: starPrint

매개변수: type 1개

기능: 매개변수에 3를 전달하면 3층 계단, 5를 전달하면 5층 계단

public class Main{
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("쌓을 층수를 입력해주세요.");
		int num = scanner.nextInt();
		System.out.println();
		getStar(num);
		
		scanner.close();
	}

	private static void getStar(int num) {
		for (int i = 1; i <= num; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}
	}
}

 

10. 아래의 함수를 만들고,해당함수를 호출하여 확인하시오.

함수이름: getGrade()

매개변수: double type

1개 리턴: 수 우 미 양 가 중 하나의 char 타입

public class Main{
	public static void main(String[] args) {
		int kor = 80;
		int eng = 80;
		int mat = 60;
		double avg = (kor +  eng + mat) / 3.0;

		System.out.println(getGrade(avg) + " 입니다.");
	}

	private static char getGrade(double avg) {
		char getChar;
		
		System.out.print("당신의 평균 점수는 " + Math.round(avg) + "점이고, ");
		
		if (avg >= 90) {
			getChar = '수';
		} else if (avg >= 80) {
			getChar = '우';
		} else if (avg >= 70) {
			getChar = '미';
		} else if (avg >= 60) {
			getChar = '양';
		} else {
			getChar = '가';
		}
		
		return getChar; // return은 가급적 한 번에 해결한다.
	}
}

 

11. 매개변수 하나를 받아 원의 넓이를 리턴하는 함수를 작성하시오.

public class Main {
	public static void main(String[] args) {
		System.out.println(Math.round(cirArea(11.5))); // Math.round(): 반올림
	}

	private static double cirArea(double rad) {
		return Math.PI * Math.pow(rad, 2); // Math.PI: 상수 파이(3.14), Math.pow(): 거듭 제곱(반지름, 지수)
	}
}

 

12. 매개변수 두개를 받아, 사각형의 넓이를 리턴하는 함수를 작성하시오.

public class Main {
	public static void main(String[] args) {
		System.out.println(square(20, 40));
		System.out.println(square(20.5, 40.7));
	}

	private static int square(int width, int height) {
		return width * height;
	}
	
	private static double square(double width, double height) { // 메소드 오버로딩을 하여 입력값의 타입이 다를 경우를 대비한다.
		return width * height;
	}
}

'WebDev > 본과정' 카테고리의 다른 글

클래스의 생성자  (0) 2021.05.11
메소드 심화 및 클래스 기초  (0) 2021.04.30
조건문과 반복문  (0) 2021.04.30
키워드와 연산자  (0) 2021.04.30
데이터 타입과 연산  (0) 2021.04.30