Java 초급 (46)

반응형

 

문제

 

숫자를 입력 받아 그 값만큼 줄을 출력한다.

method7() 의 경우 가로와 세로의 출력 갯수가 같아야 한다.

 

package kr.or.ddit.homework;

import java.util.Scanner;

public class HomeWork5 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		HomeWork5 obj = new HomeWork5();
		obj.method1();
	}
	public void method1() {
		/*
		 *    *
		 *    **
		 *    ***
		 *    ****
		 *    .
		 *    .
		 *    .
		 *    ***********
		 */
	}
	
	
	public void method2() {
		/*
		 *         *
		 *        **
		 *       ***
		 *      ****
		 *     *****
		 */
	}
	
	
	public void method3() {
		/*
		 *     *****
		 *      ****
		 *       ***
		 *        **
		 *         *
		 */
	}
	public void method4() {
		/*
		 *     *****
		 *     ****
		 *     ***
		 *     **
		 *     *
		 */
	}
	
	public void method5() {
		/*
		 *         *
		 *        ***
		 *       *****
		 *      *******
		 *     *********
		 */
	}
	
	public void method6() {
		/*
		 *      
		 *     *********
		 *      *******
		 *       *****
		 *        ***
		 *         *
		 */
	}
	
	public void method7() {
		/*
		 *      
		 *     ******
		 *     *    *
		 *     *    * 
		 *     *    *
		 *     *    * 
		 *     ******
		 */
	}
	
}

 

 

 

정답

 

package kr.or.ddit.homework;

import java.util.Scanner;

public class HomeWork5 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		HomeWork5 obj = new HomeWork5();
		obj.method1();
		obj.method2();
		obj.method3();
		obj.method4();
		obj.method5();
		obj.method6();
		obj.method7();
	}
	
	public void method1() {
		/*
		 *    *
		 *    **
		 *    ***
		 *    ****
		 *    .
		 *    .
		 *    .
		 *    ***********
		 */
		
		System.out.print("숫자를 입력하세요: ");
		int num = sc.nextInt( );
		
		for(int k=1; k<=num; k++) {
			for(int i=0; i<k; i++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	public void method2() {
		/*
		 *         *
		 *        **
		 *       ***
		 *      ****
		 *     *****
		 */
		
		System.out.print("숫자를 입력하세요: ");
		int num = sc.nextInt();
		
		for(int k=1; k<=num; k++) {
			for(int i=num; k<i; i--) {
				System.out.print(" ");
			}
			for(int i=0; i<k; i++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	public void method3() {
		/*
		 *     *****
		 *      ****
		 *       ***
		 *        **
		 *         *
		 */
		
		System.out.print("숫자를 입력하세요: ");
		int num = sc.nextInt();
		
		for(int k=0; k<num; k++) {
			for(int i=0; i<k; i++) {
				System.out.print(" ");
			}
			for(int i=num; k<i; i--) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	public void method4() {
		/*
		 *     *****
		 *     ****
		 *     ***
		 *     **
		 *     *
		 */
		
		System.out.print("숫자를 입력하세요: ");
		int num = sc.nextInt();
		
		for(int k=0; k<num; k++) {
			for(int i=num; k<i; i--) {
				System.out.print("*");
			}
			for(int i=0; i<k; i++) {
				System.out.print(" ");
			}
			System.out.println();
		}
	}
	
	public void method5() {
		/*
		 *         *
		 *        ***
		 *       *****
		 *      *******
		 *     *********
		 */
		 
		System.out.print("숫자를 입력하세요: ");
		int num = sc.nextInt();
		
		for(int k=1; k<=num; k++) {
			for(int i=num; k<i; i--) {
				System.out.print(" ");
			}
			for(int i=1; i<k*2; i++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	public void method6() {
		/*
		 *      
		 *     *********
		 *      *******
		 *       *****
		 *        ***
		 *         *
		 */
		
		System.out.print("숫자를 입력하세요: ");
		int num = sc.nextInt();
		
		for(int k=0; k<num; k++) {
			for(int i=0; i<k; i++) {
				System.out.print(" ");
			}
			for(int i=num*2; k<i/2; i--) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	public void method7() {
		/*
		 *      
		 *     ******
		 *     *    *
		 *     *    * 
		 *     *    *
		 *     *    * 
		 *     ******
		 */
		
		System.out.print("숫자를 입력하세요: ");
		int num = sc.nextInt();
		
		for(int k=0; k<num; k++) {
			if(k == 0 || k == num-1) {
				for(int i=0; i<num; i++) {
					System.out.print("*");
				}
			} else {
				for(int i=0; i<num; i++) {
					if(i%(num-1) == 0) System.out.print("*");
					else System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

 

 

반응형

'자바' 카테고리의 다른 글

[Java 초급] 9장 참조 타입  (0) 2023.12.11
[Java 초급] 8장 반복문 while문, do-while문  (0) 2023.12.11
[Java 초급] 7장 반복문 for문  (0) 2023.12.08
[Java 초급] 6.5장 테스트  (0) 2023.12.08
[Java 초급] 6장 조건문  (0) 2023.12.07
반응형

 

반복문

 

: 제어문 처음으로 돌아가 반복 실행하는 문장이다.

ex) for 문, while 문, do - while 문

 

 

 

for 문

 

: 주어진 횟수만큼 반복하고 싶을 경우 사용한다.

 

for 문 로직

 

사용법은 아래와 같다.

 

초기화식 : 시작 조건

조건식 : 종료 조건

증감식 : 반복시 실행

 

for(초기화식; 조건식; 증감식) {
	실행 문장;
}

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method1();
	}
	
	public void method1() {
		/*
		 * 반복문
		 * for, while
		 * 
		 * i = 0  <- 초기화식 : 시작조건
		 * i < 10 <- 조건식    : (종료 조건)
		 * i++    <- 증감식    : 반복시 실행
		 */
		System.out.println("for 문이 시작 됩니다.");
		for(int i=0; i<5; i++) { // 0부터 4까지 증가함
			System.out.println(i);
		}
		System.out.println("for 문이 종료 됩니다.");
	}
}

 

결과 화면 1

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method2();
	}
	
	public void method2() {
		/* 
		 * 1 ~ 10까지의 합을 구하시오.
		 */
		int sum = 0;
//		sum += 1;
//		sum += 2;
//		sum += 3;
//		sum += 4;
//		sum += 5;
		
		for (int i=0; i<=10; i++) {
			sum+=i;
		}
		System.out.println("1 ~ 10까지의 합은 : " + sum);
	}
}

 

결과 화면2

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method3();
	}
    
	public void method3() {
		/*
		 * 1 ~ 10 부터의 홀수의 합을 구하시오.
		 * i % 2 == 1
		 */
		int sum = 0;
		
		for(int i=1; i<=10; i++) {
			if(i%2 == 1) {
				sum += i;
				System.out.println(i + ", " + sum);
			}
		}
		System.out.println("1 ~ 10까지의 홀수의 합은 : " + sum);
	}
}

 

결과 화면3

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method4();
	}
	
	public void method4() {
		/*
		 * 1 ~ 10 부터의 짝수의 합을 구하시오.
		 */
		int sum = 0;
		
//		for(int i=1; i<=10; i++) {
//			if(i%2 == 0) {
//				sum += i;
//				System.out.println(i + ", " + sum);
//			}
//		}
		
		for (int i=2; i<=10; i=i+2) {
			sum += i;
			System.out.println(i + ", " + sum);
		}
		
		System.out.println("1 ~ 10까지의 짝수의 합은 : " + sum);
	}
}

 

결과 화면4

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method5();
	}
	
	public void method5() {
		/*
		 * 1 ~ 100 까지 홀수의 합을 구하시오.
		 * 1 ~ 100 까지 짝수의 합을 구하시오.
		 */
		int sum_h = 0;
		int sum_j = 0;
		
		for(int i=0; i<=100; i++) {
			if(i%2 == 1) sum_h += i; // 홀수일때
			else sum_j += i; // 짝수일때
		}
		
		System.out.println("1 ~ 100 까지 홀수의 합은 : " + sum_h);
		System.out.println("1 ~ 100 까지 짝수의 합은 : " + sum_j);
	}
}

 

결과 화면5

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method6();
	}
	
	public void method6() {
		/*
		 * 1. 내 이름을 입력하고
		 * 2. 숫자를 입력해서 입력된 숫자 만큼 내 이름이 출력되게 할 것.
		 * 
		 * ex) 양형운
		 * 	   2
		 * 
		 * 	   -> 양형운
		 * 	      양형운
		 */
		
		System.out.print("내 이름을 입력하세요 : ");
		String name = sc.next();
		
		System.out.print("숫자를 입력하세요 : ");
		int num = sc.nextInt();
		
		for(int i=0; i<num; i++) {
			System.out.println(name);
		}
	}
}

 

결과 화면6

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method7();
	}
	
	public void method7() {
		/*
		 * 스캐너를 통해 문자열을 입력 받고
		 * 문자들은 한글자(char 이용)씩 출력해보기()
		 * abcd -> 0번째 문자 : a
		 *         1번째 문자 : b
		 *         2번째 문자 : c
		 *         3번째 문자 : d
		 */
		String input = sc.next();
		int length = input.length();
		char eng;
		
		for(int i=0; i<length; i++) {
			eng = input.charAt(i);
			System.out.println(i + "번째 문자 : " + eng);
		}
	}
}

 

결과 화면7

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method8();
	}
	
	public void method8() {
		/*
		 * 1 부터 내가 입력한 숫자까지의 곱을 구하시오.
		 */
		
		System.out.print("숫자를 입력하세요 : ");
		int num = sc.nextInt();
		long result = 1l; // int로 할 시 20을 곱하면 마이너스(-)가 나옴. int의 범위보다 큰 값이 나와서 그럼
		// int 의 범위보다 넘는 값이 나오는 현상을 오버플로어 라고 한다.
		
		for(int i=1; i<=num; i++) {
			result *= i;
		}
		System.out.println("1 부터 " + num + " 까지의 곱은 " + result + "입니다.");
	}
}

 

결과 화면8

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample01 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample01 obj = new ForExample01();
		obj.method9();
	}
	
	public void method9() {
		int n = 100;
		for( ; ; ) {
			System.out.println("오버플로우 발생");
			break; // 반복문을 빠져나옴
		}
	}
}

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample02 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample02 obj = new ForExample02();
		obj.method1();
	}
	
	public void method1() {
		// A 부터 Z 까지 알파벳을 모두 출력하시오.
		int num = 'A'; 
				
//		for(int i=0; i<26; i++) {
//			char eng = (char)(num+i);
//			System.out.println("알파벳: " + eng);
//		}
		
		for(char i='A'; i<='Z'; i++) {
			System.out.println("알파벳: " + i);
		}
	}
}

 

결과 화면10

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample02 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample02 obj = new ForExample02();
		obj.method2();
	}
    
	public void method2() {
		// A 부터 내가 입력한 알파벳까지 출력하시오.
		// ex ) C -> ABC
		System.out.print("알파벳을 입력하세요 : ");
		String str = sc.nextLine();
		char eng = str.charAt(0);
		
		for(char i='A'; i<=eng; i++) {
			System.out.println("알파벳: " + i);
		}
	}
}

 

결과 화면11

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample03 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample03 obj = new ForExample03();
		obj.method1();
	}
	
	public void method1() {
		/*
		 * 구구단 출력해보기.
		 * scaner로 입력 받은 숫자의 구구단 출력해보기.
		 */
		
		System.out.println("몇 단의 구구단을 출력하시겠습니까?");
		int num = sc.nextInt();
		
		for(int i=1; i<10; i++) {
			System.out.println(num + " x " + i + " = " + num*i);
		}
	}
}

 

결과 화면12

 

 

 

이중 for 문

 

: for 문 안에 또 다른 for 문이 있는 문장을 말한다.

 

사용법은 아래와 같다.

 

초기화식 : 시작 조건

조건식 : 종료 조건

증감식 : 반복시 실행

 

for(초기화식; 조건식; 증감식) {
	for(초기화식; 조건식; 증감식) {
		실행 문장;
	}
}

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample02 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample02 obj = new ForExample02();
		obj.method3();
	}
    
	public void method3() {
		
		for(int i=0; i<4; i++) {
			for(int j=0; j<4; j++) {
				System.out.println("i : " + i + "  j : " + j);
			}
			System.out.println("------i끝------");
		}
	}
}

 

결과 화면1

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample02 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample02 obj = new ForExample02();
		obj.method4();
	}
    
	public void method4() {
		/*
		 * 내가 입력한 숫자만큼 세모가 출력되게 해볼것.
		 * *
		 * **
		 * ***
		 * ****
		 */
		
		System.out.print("숫자를 입력하시오 : ");
		int num = sc.nextInt();
		
		for(int row=0; row<num; row++) {
			for(int j=0; j<row+1; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

 

결과 화면2

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample03 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample03 obj = new ForExample03();
		obj.method2();
	}
	
	public void method2() {
		/*
		 * 구구단 전체 출력해보기.
		 */
		
		for(int i=2; i<10; i++) {
			for(int j=1; j<10; j++) {
				System.out.println(i + " x " + j + " = " + i*j);
			}
			System.out.println();
		}
	}
}

 

 

+ break문 응용

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample03 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample03 obj = new ForExample03();
		obj.method3();
	}
	public void method3() {
		int stop = sc.nextInt();
		
		for(int i=2; i<10; i++) {
			for(int j=1; j<10; j++) {
				System.out.println(i + " x " + j + " = " + i*j);
			}
			System.out.println();
			if(i == stop) { // 입력 받은 숫자의 단까지만 출력 후 반복문을 빠져나옴
				break;
			}
		}
	}
}

 

결과 화면4

 

 

package kr.or.ddit.study04.sec02;

import java.util.Scanner;

public class ForExample03 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		ForExample03 obj = new ForExample03();
		obj.method4();
	}
    
	public void method4() {
		/*
		 * 내가 입력한 단을 출력하지 않고
		 * 다음단 출력 계속 이어서 진행
		 */
		int dan = sc.nextInt();
		
		for(int i=2; i<=9; i++) {
			if(dan == i) continue; // 해당 조건에 맞을 때 하단의 코드를 진행하지 않고 다음 for을 진행함
			for(int j=1; j<=9; j++) {
				System.out.println(i + " x " + j + " = " + i*j);
			}
			System.out.println();
		}
	}
}

 

결과화면5 (이후 9단까지 출력됨)

 

 

 

TIP

 

for 문을 진행할 때 값을 하나하나 찍기에 번거롭다면 디버깅 모드를 사용하는 것이 좋다.

 

1

 

1. 벌레 모양을 클릭하여 디버깅 모드로 전환한다.

 

2

 

2. 키보드 F8을 눌러 반복문을 진행한다.

 

반응형

'자바' 카테고리의 다른 글

[Java 초급] 8장 반복문 while문, do-while문  (0) 2023.12.11
[Java 초급] 7.5장 테스트  (0) 2023.12.08
[Java 초급] 6.5장 테스트  (0) 2023.12.08
[Java 초급] 6장 조건문  (0) 2023.12.07
[Java 초급] 5.5.2장 테스트2  (2) 2023.12.07
반응형

 

문제

 

1. 컴퓨터가 랜덤으로 내는 가위 바위 보랑 내가 입력한 가위 바위 보를 비교해서 승패를 출력 하시오

0 -> 가위 , 1 -> 바위 , 2 -> 보 일때
if 문 사용
ex) 컴퓨터 : 가위 , 사람 : 보, 결과 : 졌다/이겼다/비겼다.

 

 

 

1번 문제

 

package kr.or.ddit.homework;

import java.util.Scanner;

public class HomeWork4 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		HomeWork4 obj = new HomeWork4();
		obj.process3();
	}
    
	public void method3() {
		/*
		 *   0 -> 가위
		 *   1 -> 바위
		 *   2 -> 보
		 *   
		 *   컴퓨터가 랜덤으로 내는 가위 바위 보랑. 
		 *   내가 입력한 가위 바위 보를 비교해서 승패를 출력 하시오
		 *   if 문 사용
		 *   ex) 컴퓨터 : 가위 , 사람 : 보, 결과 : 졌다/이겼다/비겼다.
		 */
		
		int com = (int)(Math.random()*3);
		System.out.println("가위 : 0, 바위 : 1, 보 : 2");
		
		int user = sc.nextInt();
		String com_s = "";
		String user_s = "";
		String result = "";
		
		if(com == 0) com_s = "가위";
		if(com == 1) com_s = "바위";
		if(com == 2) com_s = "보";
		
		if(user == 0) user_s = "가위";
		if(user == 1) user_s = "바위";
		if(user == 2) user_s = "보";
		
		if( (com == 0 && user == 1) || (com == 1 && user == 2) || (com == 2 && user == 0) )
			result = "이겼다.";
		if( (com == 1 && user == 0) || (com == 2 && user == 1) || (com == 0 && user == 2) )
			result = "졌다.";
		if( com == user )
			result = "비겼다.";
		
		System.out.printf("com : %s \t user : %s\n", com_s, user_s);
		System.out.printf("결과는 : %s\n", result);
	}
	
}

 

결과 화면

 

반응형

'자바' 카테고리의 다른 글

[Java 초급] 7.5장 테스트  (0) 2023.12.08
[Java 초급] 7장 반복문 for문  (0) 2023.12.08
[Java 초급] 6장 조건문  (0) 2023.12.07
[Java 초급] 5.5.2장 테스트2  (2) 2023.12.07
[Java 초급] 5.5.1장 테스트  (0) 2023.12.06
1 ··· 9 10 11 12 13 14 15 16