뉴렉처/자바

[뉴렉처/자바] ★반복문과 제어문 2023.06.16

2023. 6. 16. 14:14
목차
  1. 반복문 / 제어문 생각할 점
  2. 1.break문과 continue문 문제풀이
  3. 1.1 두개의 상태변수
  4. 1.2 continue문과 break의 동시사용
  5. 2.중첩 for문
  6.  2.1 else if

반복문 / 제어문 생각할 점

1.조건을 지정한다. 어떻게 조건을 지정해야할까?

2.인덱스를 쓸거냐 안쓸거냐에 따라 while문을 쓸지 for문을 쓸지 결정한다. 그리고 인덱스의 범위에 주의한다.

3.상태유지를 할거냐 안할거냐(저장변수필요)를 결정한다.

4.제어의 흐름을 어떻게 제어 할 것인가

1.break문과 continue문 문제풀이

1.1 두개의 상태변수

//		문제 4) 파일에서 성적을 읽다가 '두 번째 100 이후의 성적'을 모두 출력하시오. (100점 미포함)
//		조건은 두 개다. 100을 넘어야 하고 두 번째 100이어야 한다.
		for(int count=0; fscan.hasNext();) { // 카운트 변수를 선언해서 상태변화를 표시했다.
			String word = fscan.next();
			int kor = Integer.parseInt(word);
			
			if(kor==100)
				count++;
			
			if(count < 2 || kor ==100)
				continue;
			
			System.out.printf("%d,", kor);
		}

 이렇게 보면 코드가 쉬워보이지만, 이런 코드를 생각하기가 쉽지가 않았다. 상태변화가 두 개이니 변수를 두 개 선언할 생각이였는데 count변수 하나로 퉁 칠 수 있다니 발상이 독특하다.

 

1.2 continue문과 break의 동시사용

		for(int i=0; fscan.hasNext(); i++) {
			String word = fscan.next();
			int kor = Integer.parseInt(word);
			
			if (i<4) 
				continue;
			if(i==8)
				break;
			System.out.printf("%d," ,kor);
		}

 

2.중첩 for문

 2.1 else if

		for(int j=0; j<10; j++) {
			for(int i=0; i<10; i++) {
				
				if(i==2)
					System.out.print("a ");
				else if(i==5)
					System.out.print("b ");
				else if(i==9)
					System.out.print("c ");
				else
					System.out.printf("%d ", i+1); //기본값
			}
			System.out.println();
		}

else if문에서 else는 기본값 else if는 특정조건 값이다.

 

두 값을 비교해보자. 두 값을 비교하면, else기본 값과 else if 특정 조건값을 이해할 수 있다.

		for(int i=0; i<3; i++) {
			if(i==1)
				System.out.println("b ");
			
			if(i==1)
				System.out.println("a ");
			else
				System.out.println("c ");
		}
		for(int i=0; i<3; i++) {

			
			if(i==1)
				System.out.println("a ");
			else
				System.out.println("c ");
			
			if(i==1)
				System.out.println("b ");
		}

 앞의 코드는 결과값이 'c,b,a,c'순으로 나오지만, 뒤의 코드는 'c,a,b,c' 순으로 결과값이 나온다. 표면상으로는 같은 코드를 입력했지만, else 이하의 코드는 기본 값이고 매번 조건에 상관없이 출력되기 때문에 순서가 바뀐 결과값이 나온다.

 

이를 제대로 이해했다면, 오목만들기 프로그램도 만들 수 있다!

public class OmokProgram {

	public static void main(String[] args) {
//		전략 모든 경우의수를 구해주고 특수한 경우를 가장 먼저 보편적인 경우를 가장 나중에 세워준다.
		for(int j=0;j<10;j++) { 
		    for(int i=0;i<10;i++) {
		    	if(j==0&&i==0)
		    		System.out.print("┌");
		    	else if(j==0&&i==9)
		    		System.out.print("┐");
		    	else if(j==9&&i==0)
		    		System.out.print("└");
		    	else if(j==9&&i==9)
		    		System.out.print("┘");
		    	else if(j==0)
		    		System.out.print("┬");
		    	else if(j==9)
		    		System.out.print("┴");
		    	else
		    		System.out.print("┼");
		   }
		    System.out.println();
		}		
	}
}

'뉴렉처 > 자바' 카테고리의 다른 글

[뉴렉처/자바] ★배열 2023.06.21  (0) 2023.06.21
[뉴렉처/자바] ★반복문과 제어문 2023.06.20  (0) 2023.06.20
[뉴렉처/자바]★반복문과 제어문 2023.06.19  (1) 2023.06.19
[뉴렉처/자바] ★반복문과 제어문 2023.06.15  (0) 2023.06.15
[뉴렉처/자바] ★반복문과 제어문 2023.06.14  (0) 2023.06.14
  1. 반복문 / 제어문 생각할 점
  2. 1.break문과 continue문 문제풀이
  3. 1.1 두개의 상태변수
  4. 1.2 continue문과 break의 동시사용
  5. 2.중첩 for문
  6.  2.1 else if
'뉴렉처/자바' 카테고리의 다른 글
  • [뉴렉처/자바] ★반복문과 제어문 2023.06.20
  • [뉴렉처/자바]★반복문과 제어문 2023.06.19
  • [뉴렉처/자바] ★반복문과 제어문 2023.06.15
  • [뉴렉처/자바] ★반복문과 제어문 2023.06.14
각시탈코더
각시탈코더
각시탈코더
각시탈코더
각시탈코더
전체
오늘
어제
  • 분류 전체보기 (203)
    • java (46)
      • 객체지향 (20)
      • 기본문법 (8)
      • 자바의 정석 연습문제 오답노트 (9)
      • 백준 알고리즘 (9)
    • Spring (17)
      • SpringMVC (8)
      • Spring DI와 AOP (5)
      • REST API와 Ajax (1)
      • Spring 프로젝트 (1)
      • Spring Security (0)
    • DB (47)
      • Oracle (15)
      • SQL오답노트 (25)
      • 튜닝 (0)
      • ERD (1)
      • DB 모델링 (5)
    • Servlet & JSP (3)
    • JDBC (2)
      • 기본 (1)
      • 스프링JDBC (1)
    • MyBatis (2)
    • JavaScript (2)
      • 코딩애플 (0)
      • 문법 (1)
    • React (0)
      • 코딩애플 (0)
    • HTML (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • CSS (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • Linux (0)
    • Git & GitHub (2)
      • Git (1)
    • CS (19)
      • 네트워크 (6)
      • HTTP (7)
      • 컴퓨터구조 (0)
      • 자료구조와 알고리즘 (2)
      • 기타 (4)
    • 개발설정 (2)
    • 기술면접 (0)
      • JAVA (0)
      • Spring (0)
      • DB (0)
      • 네트워크 (0)
      • 공통 (0)
    • 프로젝트 (2)
      • 게시판만들기 (2)
    • 기혁씨의 삽질표류기 (28)
    • 참고자료 (2)
      • 국비수업 (0)
      • 당당 프로젝트 (1)
    • 뉴렉처 (17)
      • 자바 (11)
      • 자바스크립트 (3)
      • 키워드 (0)
      • 숙제 (0)
      • CSS (0)
      • DB (3)
      • 서블릿 (0)
      • 스프링 (0)
      • DOM (0)
    • 내가 만든 학습그림 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • spring
  • 스프링
  • 서브쿼리
  • 쿼리
  • 국비수업
  • 연습문제
  • 프로그래머스
  • 웹프로그래밍
  • Oracle
  • 백준
  • 개발자
  • Java
  • It
  • 코딩
  • 모두의네트워크
  • 오류
  • 알고리즘
  • 뉴렉처
  • 자바의정석기초편
  • 백엔드
  • db
  • 자바
  • 자바의정석
  • 객체지향
  • 배열
  • SQL
  • 공부
  • 오라클
  • 에러
  • 네트워크

최근 댓글

최근 글

hELLO · Designed By 정상우.
각시탈코더
[뉴렉처/자바] ★반복문과 제어문 2023.06.16
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.