지금까지 배운 제어문을 활용하여 두 가지 예제를 풀어보도록 하겠습니다.
Q1. 연산자와 두 수를 변수로 선언한 후 사칙연산이 수행 되는 프로그램을 만들어 보세요.
if - else ife -else if, swtich -case 두 방식 모두 구현해 봅니다.
public class Q1 {
public static void main(String[] args) {
char operator = '/';
int i = 10;
int o = 5;
int result;
if (operator == '+') {
result = i + o;
} else if(operator == '-') {
result = i - o;
} else if(operator == '*') {
result = i * o;
} else {
result = i / o;
}
System.out.println(result); // 2
if -else if 방식을 활용하여 opreator의 경우에 따라 4가지 조건을 만들어 입력값 i와 o를 사칙연산 하도록 구현하였습니다.
public class Q1switch {
public static void main(String[] args) {
char operator = '/';
int i = 10;
int o = 5;
int result;
switch(operator) {
case '+' : result = i + o;
System.out.println(result);
break;
case '-' : result = i - o;
System.out.println(result);
break;
case '*' : result = i * o;
System.out.println(result);
break;
default : result = i / o;
System.out.println(result);
break;
}
switch-case 문의 경우도 마찬가지로 case를 4가지 연산자로 두어 사친연산을 할 수 있게 구현하였습니다.
Q2. 다음 다이아몬드를 출력해 보세요.
*
***
*****
*******
*****
***
*
import java.util.Scanner;
public class Q222 {
public static void main(String[] args) {
System.out.println("홀수 값을 입력하세요:");
Scanner scanner = new Scanner(System.in);
int linecount = scanner.nextInt();
int spacecount = linecount/2;
int starcount = 1;
for (int i = 0; i < linecount; i++) {
for(int j = 0; j <spacecount; j++ ) {
System.out.print(" ");
}
for(int j = 0; j <starcount; j++ ) {
System.out.print("*");
}
for(int j = 0; j <spacecount; j++ ) {
System.out.print(" ");
}
System.out.println(" ");
if (i < linecount/2 ) {
spacecount -=1;
starcount +=2;
} else {
spacecount +=1;
starcount -=2;
}
}
다이아몬드를 살펴보면 첫째 줄 공백은 전체 줄에 2를 나눈 값과 같고 별은 하나입니다. 그리고 각줄마다 공백은 1칸씩 줄어들고 별은 2개씩 늘어나다가 전체줄에 반이 지나면 다시 반대로 공백이 1칸씩늘고 별이 2개씩 줄어듬을 알 수 있습니다. 이정보를 토대로 반복문을 만들고 그안에 조건문을 집어 넣어 줄이 늘어남에 따라 공백과 별의 증감을 주어 홀수 입력값에 따라 만들어지는 다이아몬드를 구현해 보았습니다.