자바 5일차

선장원·2021년 10월 7일

자바

목록 보기
5/24

5일차 (10/07)

반복문 추가설명

  • 반복 조건 : 반복문 내용을 실행 할지를 판단하는 조건
  • 조건을 만족(true) 해야만 반복문 내용이 실행된다.


for문을 순서로 하면 이런식이 나온다.

지역변수와 전역변수

  • 변수를 사용할 수 있는 범위에 따라 차이가 있음.
  • 전역변수 (Global Variable)
    1. 클래스 또는 메서드 내에서 선언해서 어디서든 사용이 가능한 변수
  • 지역변수 (Local variable)
    1. 특정 블록 내에 선언해서 해당 블록에서만 사용이 가능한 변수
    1. 블록을 벗어나면 사용 불가능

for문 복습

1부터 10까지의 합 구하기

		/*
		 * for문을 이용하여 1부터 10까지 합계를 구하는 공식
		 * 
		 * for문을 이용해서 1부터 10까지 숫자를 만들어야하고 이 숫자들을 더하는 과정 필요함 합계를 구하기 위한 변수가 하나 필요함.
		 * 
		 * 출력을 아래와 같이 나오도록 해보세요 1+2+3+4+5+6+7+8+9+10=55
		 * 
		 */
		int result = 0;
		String var = "";
		
		for (int i = 1; i <= 10; i++) {
			result += i;
//			System.out.println(result);
			var += i;
			if (i < 10 ) {
			System.out.println(var += (" + "));
			} else {
				System.out.println(var + (" = ") + result);
			}
				
		}
		System.out.println(result);
		
		
		// 이거는 선생님이 한 코드 print를 사용해서 계속해서 이어 붙인다
		// 나는 스트링을 만들어서 거기에 계속 붙여 넣어서 사용했는데
		// 
		int sum = 0;
		for (int i = 1; i <=10; i++) {
			sum += i;
			System.out.print(i);
			if (i <10) {
				System.out.print(" + ");
			} else {
				System.out.print(" = ");
			}
		}
		System.out.println(sum);

시작과 끝의 합을 원하는 숫자로 구하기

		/*
		 * 시작 값을 10 끝 값을 20
		 * 출력 : 10+11+12+13+14+15+16+17+18+19+20=165
		 * 출력2 : 10부터 20까지의 합은 165입니다.
		 * 
		 * 시작 값 100 끝 200
		 * 출력 : 100+101+102+103+~~~~~198+199+200=15150
		 * 출력2 : 100부터 200까지의 합은 15150입니다.
		 * 
		 */
		Scanner scan = new Scanner(System.in);

		int num1 = 0, num2 = 0, result = 0; // 1은 시작 2는 끝

		System.out.print("시작값 : ");
		num1 = scan.nextInt();
		System.out.print("끝값: ");
		num2 = scan.nextInt();

		for (int i = num1; i <= num2; i++) {
			result += i;
			System.out.print(i);
			if (i < num2) {
				System.out.print(" + ");
			} else {
				System.out.print(" = ");
			}
		}
		System.out.println(result);
		System.out.println(num1 + "부터 " + num2 + "까지의 합은 " + result + "입니다.");

중첩 for문

for (int i = 0; i <=3; i++) {
	실행 부분
	for (int j =0;  j <= 3; j++){
		실행부분
	}
}

중첩 for문 실습

중첩for문 사용해서 구구단 만들기!

for (int i = 1; i <= 9; i++) {
			System.out.print(i + "단 : ");
			for (int j = 1; j <= 9; j++) {
				if (j < 9) {
					System.out.print(i + " x " + j + " = " + (i * j) + "  ");
				} else
					System.out.println(i + " x " + j + " = " + (i * j));
			}
		}

이거도 백준 알고리즘에서 본거같은데

별찍기

		/*
		 * 별찍기 중첩 for문 이용? 그냥해도 되던데
		 */
		Scanner scan = new Scanner(System.in);
		int num = 0;
		String var = "";

		num = scan.nextInt();

		for (int i = 0; i < num; i++) {
			var += "*";
			System.out.println(var);
		}
		// 중첩 for문을 사용하라고?
		for (int i = 0; i <= num; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}

백준 알고리즘에서 해봤던 코드라서 금방했다
처음에 백준 알고리즘에서 이거 하려고 진짜 힘들었는데....
다른 사람들은 실습시간 내에 성공 했을까ㅋㅋㅋ

수학 공식 답 찾기

		/*
		 * 수학 공식 답 찾기
		 * 4x + 5y = 60 을 만족하는 x,y 값을 출력하세요 (x, y는 1보다 크고 10보다 작은 정수)
		 */

		int num1 = 0, num2 = 0, result = 0;
		for (int i = 1; i <= 10; i++) { // 이게 x

			for (int j = 1; j <= 10; j++) { // 이게 y
				result = (4 * i) + (5 * j);
				if (result == 60) {
					System.out.println("i : " + i +"\t j : "+ j);
				}
			}

오 이번 문제 재밌었다
머리 깨지는 줄 알았네
다행이 머리 깨지기 전에 찾았네

공배수를 제외한 숫자의 총합 구하기

		/*
		 * 어떤 정수를 하나 이력 받아서 1부터 입력받은 정수 까지의 숫자중에서 
		 * 2의 배수, 3의 배수를 제외한 숫자의 총합을 구하시오
		 * 
		 */
		Scanner scan = new Scanner(System.in);
		int num = 0, result = 0;
		System.out.print("정수 : ");
		num = scan.nextInt();

		for (int i = 1; i <= num; i++) {
			if (i % 2 == 0) {
			} else if (i % 3 == 0) {
			} else {
				System.out.println(i);
				result += i;
			}
		}
		System.out.println("합 : " + result);

for문과 if문을 같이쓴 코드

실습을 많이해서 재밌긴한데
다음 것도 배우고 싶긴하다
내일은 while문을 한다고 한다!!

백준 알고리즘에서 BufferedReader와 BufferedWriter를 사용하라고 하는데
구글에서 찾아서 하는데 이해가 잘 안된다ㅠㅠ
import를 사용을 하라고 하는데 왜 오류가 나고
사람들 코드 보면 throw는 뭐고
두개를 같이 하지말고 하나씩 해서 연습을 하고 백준 알고리즘에서 해봐야겠다

수업중 꿀팁

\t : 문자열에서 사용하면 탭키(4칸?) 들여쓰기를 해줌

if문 실행 내용이 한줄이면 {}중괄호 생략가능

컨트롤 + 쉬프트 + O 를 같이 누르면 자동으로 import를 해준다는데 해봐야지

profile
코딩도전기

0개의 댓글