자바의 기초 - for문

2023. 3. 17. 01:33· JAVA 공부
반응형

오늘은 for문에 대해서 배웠다.
for문의 로직은 상당히 복잡한 편이라 이해하는데 상당한 시간이 걸렸으며
솔직히 다 이해했다고 말할수 있는지 잘 모르겠다. 
하지만 오늘 이해한 내용까지만이라도 정리해 보려고한다.
 
for문의 가장 기본적인 형식은
for(int i = 0; i < 5; i++){
           Syso("Java");
 }
이런식으로 작성을 하면 0부터 4까지 총 5번의 
printf식을 작동시킨다.
 
이것을 조금더 어렵게 사용하면    

 

이런식으로 사용이 가능한데  
str의 문자열을 arr배열에 toCharArray를 이용하여 쪼개서 Arrays.toString으로 가져와서 출력하는 방식이다.
 
그리고a부터z까지 각각의 알파벳을 아스키코드인 - 32를 하여 대문자만을 출력도 가능하다.
 
컴퓨터에서 모든 문자는 각각의 아스키코드를 가지고있고 그 코드와 규칙성만 이해를 한다면 다양한 방법으로 응용이 가능하다.
 
자바에서는 예외라는것을 발생시킬수가 있는데 보통
Public static void main(String[] args) throws Exception 
이런식으로 throws Exception을 입력하여 예외를 허용할수있다.
 
예외가 발생하는 경우는 사용자에 대한 입출력에 많이 발생 할 수 있다.
보통 하드웨어에 접근한 때 발생할 수 있다.
throw와 throws의 차이는 
throw : 내가 무언가를 던진다고 했을때 상대방이 받을것을 가정하고 던지는것
throws : 한곳에서 예외가 발생했을때 다른 곳에서 대신 처리하는것 
 
예외의 예시로
장문의 글자를 String str으로 선언해두고
 
char [] arr = atr.toCharArray();
for(int i = 0; i < arr.length; i++){
           char ch = arr[i];
          System.out.print(ch);
          Thread.sleep(200);
}
syso;
이런식으로 했을때 문자열을 toCharArray가 쪼개고 그 문자열을 ch에 저장
각각의 문자열을 0.2초 단위로 출력하는 코드이다.
 
이 코드를 이용한 실전예시로 
 

시간을 Scanner으로 입력받고
second = (int) (min * 60)  으로 0.5분를 입력해도 30초로 변환시켜준다.
그 second값부터 0까지 카운트다운하는데
Thread.sleep(1000)를 이용하여 1초당 한개씩 출력이 가능하다.
 
for문중 속이 빈 마름모를 출력할수 있는데 이것이 상당히 어려웠다.

일단 이렇게 행과 열을 구분하여 for문으로 만들어주면 
이런 결과값이 나오는 것을 알수있다.
이것을 보면서 만들고 싶은 도형의 공통점을 찾아서 if의or조건으로 다 넣어주면 원하는 위치를 추출할수 있다.

위 숫자들의 공통점은  i 와 j의 합이 2거나,   i + j 의 합이 6이거나,    i  -  j가 2 혹은 j  - i가 2인 공통점을 가지고 있다.
이 공통점을 if(i + j == 2 || i + j == 2 || i + j == 6 || i - j == 2 || j - i == 2){
         System.out.print("*   ");
         }
        Syso();
이런식으로 입력하면 속이 빈 마름모를 출력할수 있다.
 

int width = 5;

int height = 5;

int halfOfwidth = width / 2;

int halfOfHeight = height / 2;

 

아래처럼 절대값을 구해서 다 2와 같은지 구하는 방법도 있다.

 
마지막으로 오늘 가장 머리를 아프게 했던 별로 마름모를 만드는 코드이다.
이 코드를 이해하는데 10번을 본것같다;;;
 
for(int i = 0; i < length; i ++){                       // 0부터 4까지 5번 아래 내용을 반복
           for(int j = 0; j < sp; j++){                   // 0부터 1까지 2번 띄어쓰기
            System.out.print(space;)
          }
           for(int j = 0; j < st; j++){                   //  0의 자리 하나만 별을 찍는다
           System.out.print(star;)
          }
           for(int j = 0; j < sp; j++){                 // 제일 위 띄어쓰기 똑같이 반복
            System.out.print(space;)
}
Syso();            //한줄 아래로 이동
if (i < length / 2){             //만약   i가 현재 1이라면     1 < 5 / 2=2  true
       sp -= 1;                   // sp = 2 - 1      sp = 1;             sp = 0
       st += 2;                   // st = 1 + 2       st = 3;             st  = 5           이런식으로 별의 갯수를 늘려나간다.
} else {
        sp += 1;                 // 별 5개를 찍었다면    띄어쓰기를 늘리고
         st -= 2;                   // 별찍기를 줄여서 마름모를 완석시킨다.
}
}
 
이 외에도 직사각형도 하고 다른 코드도 배웠지만 규칙성을 발견하는것이 상당히 어렵고
앞으로 자주 보면서 익숙해질 필요가 있을것 같다.
 
오늘로 6일차이다. 자바수업 따라가는것도 벅차지만 매일 학원에 남아서 복습과 정보처리기사 공부를 하면서
하루를 보내고 있다. 이 길이 나에게 맞는길인지 아직은 잘 알수없다.
나 자신이 다른사람들에 비해서 뒤떨어 지는것이 아닌가 자괘감이 들때도 있다.
문제를 내주시면 그 문제를 다른사람들은 바로 풀어내지만 난 못풀거나 더욱 많은 시간이 소요된다.
 
고작 6일차에 이런감정을 느끼게 될줄은몰랐지만 다행인 점은 수업이 끝나고나서
수업시간에는 절대 이해할수 없었던 내용들을 하나씩 이해해 나가고 있다는 것이다.
 
이제 시작이다. 데이터가 쌓이면 그만큼 이해하는 속도도 빨라지고 그럼 자존감도 서서히 회복될것이라고 생각된다.
기왕 시작한거 한번 따라가보자.
 
오늘정리는 여기서 마치겠다.
 
  

반응형

'JAVA 공부' 카테고리의 다른 글

자바의 기초 - 객체지향파트 중 생성자(Constructor)  (0) 2023.03.23
자바의 기초 - loop문 응용, array(배열)  (0) 2023.03.19
자바의 기초 - String(문자열)  (0) 2023.03.15
자바 기초 - Operator  (4) 2023.03.13
자바의 기초-연산자,스캐너,printf,equals함수  (0) 2023.03.11
'JAVA 공부' 카테고리의 다른 글
  • 자바의 기초 - 객체지향파트 중 생성자(Constructor)
  • 자바의 기초 - loop문 응용, array(배열)
  • 자바의 기초 - String(문자열)
  • 자바 기초 - Operator
Yamahost
Yamahost
반응형
Yamahost
꿈을 쫓는 거북이
Yamahost
전체
오늘
어제
  • 분류 전체보기 (54)
    • React (1)
    • SpringBoot (3)
    • 개인 서버(도커등) (10)
    • CS지식(공부용) (1)
    • SpringFramework (4)
    • JSP (4)
    • 오라클 DB (2)
    • 화면구현(HTML,CSS) (3)
    • JAVA 공부 (14)
    • 학원 스터디그룹 과제 (2)
    • 코딩테스트 연습 (0)
    • C언어 공부 (8)
    • 토이프로젝트 (0)
    • 과거글 (2)

블로그 메뉴

  • 홈
  • 글쓰기
  • 깃허브
  • 방명록
  • 관리자설정

공지사항

인기 글

태그

  • 지문인식
  • Mi8
  • 망고
  • 뚝뚝이
  • 친구
  • 태국 여행
  • 빠뚜사이
  • 미8
  • 라오스 여행
  • 여행
  • 라이트
  • 샤오미

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Yamahost
자바의 기초 - for문
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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