문제

 

✏️for문을 이용하여  다음처럼 구구단 표를 출력해보세요.(단! for문에 index넘버는 바꾸지 마세요)
2 * 1 = 2
2 * 2 = 4
.
9 * 9 = 81

문제 해설

  • 인덱스 넘버를 바꾸지 않고 해야 해서 일정한 규칙을 찾아야 한다.
  • i가 8까지 작동하게 되면 10단까지 나오니 break를 사용해 중단되게 한다.

 

public static void main(String[] args) {
		for (int i = 0; i < 9; i++) {
 			if(i==8)
 				break;
 			for (int j = 0; j < 9; j++) {
 					System.out.printf("%d * %d = %d\n", i + 2, j + 1, (i + 2) * (j + 1));
			}
			System.out.println();
		}
	}// end main

 

결과

문제

✏️  while문을 이용하여, number가 짝수마다 +가 출력되고, 홀수마다 -가 출력되는 코드를 작성해보세요. 
    이때, x축의 문자가 10개가 되면, 줄바꿈을 해보세요

-+-+-+-+-+
-+-+-+-+-+
-+-+-+-+-+
…(반복)

문제 해설

  • 이중 while문을 사용하여 구현하였다.
  • 두번째 while문이 반복적으로 실행하려면 변수 초기화를 해줘야 했다.
public static void main(String[] args) {
 		int i = 0;
 		int j = 0;

 		while (i < 10) {
 			while (j < 10) {
 				if ((j + 1) % 2 == 0)
 					System.out.print("+");
 				else
 					System.out.print("-");
 				j++;
 			}
 			System.out.println();
 			j = 0;
 			i++;
 		}
 	}

결과

문제

✏️  while문을 이용하여, number가 짝수마다 +가 출력되고, 홀수마다 -가 출력되는 코드를 작성해보세요.

number의 값이 100이 되면 while문을 빠져나와주세요.

-+-+-+-+-+... (반복)

문제 해설

  • 변수를 생성해서 while문이 한번 작동하면 +1이 되게 만든다.
  • 조건문을 사용하여 짝수이면 " + ", 홀수이면" - "를 출력하게 한다.

 

 

public class Ex_0616 {
 	public static void main(String[] args) {
 		int number = 1;
 		while (number <= 100) {
 			if ((number % 2) == 0)
 				System.out.print("+");
 			else
 				System.out.print("-");
 			number++;
 		}
 	}

결과

문제

💡[아이디어] 오목판에 좌표값을 입력 받아 해당 좌표에 구현해볼 생각을 했다.

  X, Y값을 입력 받아서 "오목판"에 바둑알을 출력해라!

문제 해설

  • 바둑알은 흰색, 검은색 2개가 있다.
  • X, Y 좌표값 받을 변수를 선언.
  • 계속 반복될 수 있게 while문 추가.

public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);



 		while (true) {

 			// 흰돌
 			System.out.print("검은돌 x 좌표값 : ");
 			int xx = sc.nextInt();
 			System.out.print("검은돌 y 좌표값 : ");
 			int yy = sc.nextInt();

 			// 검은돌
 			System.out.print("흰돌 x 좌표값 : ");
 			int xxx = sc.nextInt();
 			System.out.print("흰돌 y 좌표값 : ");
 			int yyy = sc.nextInt();

 			for (int x = 0; x < 12; x++) {
 				for (int y = 0; y < 10; y++)
 					if (x == 0 && y == 0)// 왼쪽 위 모서리막기
 						System.out.print("┌");
 					else if (x == 0 && y == 9)// 오른쪽 위 모서리막기
 						System.out.print("┐");
 					else if (x == 11 && y == 0)// 왼쪽 아래 모서리막기
 						System.out.print("└");
 					else if (x == 11 && y == 9)// 오른쪽 아래 모서리막기
 						System.out.print("┘");
 					else if (x == 0)// 위에 막기
 						System.out.print("┬");
 					else if (x == 11)// 아래 막기
 						System.out.print("┴");
 					else if (y == 0)// 왼쪽 막기
 						System.out.print("├");
 					else if (y == 9)// 오른쪽 막기
 						System.out.print("┤");
 					else if (x == xx && y == yy)// 검은돌
 						System.out.print("●");
 					else if (x == xxx && y == yyy)// 흰돌
 						System.out.print("○");
 					else
 						System.out.print("┼");

 				System.out.println();
 			}
 		}

결과

문제

" ┌ ┐┘└├ ┤ ┬ ┴ ┼ ─ │ " 이 기호들을 사용하여 11x11 오목판을 출력해라.

" ┌ ├ ┤ ┬ ┴ ┼ ─ │ " 이 기호들을 사용하여 11x11 오목판을 출력해라.


문제 해설

  1. ┼ 모양으로 내부를 채운다.
  2. ┌ └ 모양으로 각 모서리를 채워준다.
  3. ├ ┤를 사용하여 좌, 우 여백을 닫아준다.
  4. ┬ ┴를 사용하여 위, 아래 여백을 닫아준다.

💢중요💢 조건을 실행하는 순서를 잘 생각하지 않으면 이상한 모양이 나온다. 


public static void main(String[] args) {

		for (int x = 0; x < 12; x++) {
 			for (int y = 0; y < 10; y++)
 				 if (x == 0 && y == 9)// 오른쪽 위 모서리막기
 					System.out.print("┐");
 				else if (x == 11 && y == 9)// 오른쪽 아래 모서리막기
 					System.out.print("┘");
 				else if (x == 0 && y == 0)// 왼쪽 위 모서리막기
 					System.out.print("┌");
 				else if (x == 11 && y == 0)// 왼쪽 아래 모서리막기
 					System.out.print("└");
 				else	if (x == 0)// 위에 막기
 					System.out.print("┬");
 				else if (x == 11)// 아래 막기
 					System.out.print("┴");
 				else if (y == 0)// 왼쪽 막기
 					System.out.print("├");
 				else if (y == 9)// 오른쪽 막기
 					System.out.print("┤");
 				else
 					System.out.print("┼");

  			
 			System.out.println();
			}
		}

위 코드로 if~else if 문으로 도배를 하니까 코드가독성떨어져서 구조 개선을 하기 위해 다시 리펙토링 작업을 해보았다.


[코드 개선작업 완료]

public static void main(String[] args) {

			for (int x = 0; x < 12; x++) {
				for (int y = 0; y < 12; y++) {
					
					
					if(x==0)
						if(y==0)
							System.out.print("┌");
						else if(y==11)
							System.out.print("┐");
						else
							System.out.print("┬");
					
					else if(x==11)
						if(y==0)
							System.out.print("└");
						else if(y==11)
							System.out.print("┘");
						else 
							System.out.print("┴");
						
					else
						if(y==0)
							System.out.print("├");
						else if (y==11)
							System.out.print("┤");
						else
							System.out.print("┼");
							
				}
				System.out.println();
			}
		}

 

기존에 하나에 if문에 &&(and) 연산자를  사용하여 X, Y의 조건을 묶어서 표현하니 가독성이 떨어졌던 것이었다.

 

이런 식으로 X조건 아래에 Y조건을 붙여서 시각적으로 잘 들어오게 표현한 후 비슷한 조건들끼리 묶어줬다. 


결과

다운그레이드하고 문제가 계속발생한다...🔥

 

구글링하면서 찾아보다가 해결 방법을 찾았다.

 

원인

  • 이클립스 앱 내의 코드서명이 깨져서 발생하는 오류

 

해결방법

  • terminal 실행
codesign --force --deep --sign - /Applications/Eclipse.app/Contents/MacOS/eclipse

 위 내용을 입력하면 해결 된다.

+ Recent posts