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 |
최근댓글