개인 공부/하루 공부
4/4) 다중 for문 / scanner
첼로그
2023. 4. 4. 23:38
다중 for문
// ★★★★★ i = 5
// ★★★★ i = 4
// ★★★ i = 3
// ★★ i = 2
// ★ i = 1
for (int i = 1; i <= 5; i++) { // 행 (세로) / (i <=5)으로 5행이 완성 될때까지 작동
for (int j = 1; j <= ( 6 - i ); j++) { // 열 (가로) / j <= (6-i) i의 증가로, 반복할수록 줄어듦
System.out.print("★"); // 한 단어에 입력값을 넣어줌
}
System.out.println();
}
★★★★★
★★★★
★★★
★★
★
i 가 j
어렵다..!! 피곤해서그런지 더 어려움
// ☆☆☆☆★ i = 1 / 흰별 = 4 / 검은별 = 1
// ☆☆☆★★ i = 2 / 흰별 = 3 / 검은별 = 2
// ☆☆★★★ i = 3 / 흰별 = 2 / 검은별 = 3
// ☆★★★★ i = 4 / 흰별 = 1 / 검은별 = 4
// ★★★★★ i = 5 / 흰별 = 0 / 검은별 = 5
for (int i = 1; i <= 5; i++) { // 행 (세로) - 5줄생성
for (int j = 1; j <= (5-i); j++) { // j < (5-i) - △ i가 증가함, j값이 5-i보다 크면 종료.
System.out.print("☆"); // 이걸△ ☆로 출력
}
for (int j = 1; j <= i ; j++) { // j는 1임. j가 i보다 크면 종료됨(딱 5줄 세로만)/ j는 1씩 증가
System.out.print("★");
}
System.out.println();
}
이해하기 힘듦 (for 문안에 if /else있는거) ▽
// 1 2 3 4 5 >> j
// ☆☆☆☆★ i = 1 / 흰별 = 4 / 검은별 = 1
// ☆☆☆★★ i = 2 / 흰별 = 3 / 검은별 = 2
// ☆☆★★★ i = 3 / 흰별 = 2 / 검은별 = 3
// ☆★★★★ i = 4 / 흰별 = 1 / 검은별 = 4
// ★★★★★ i = 5 / 흰별 = 0 / 검은별 = 5
for (int i = 1; i <= 5 ; i++) { // (세로)5번 반복문 출력
for (int j = 1; j <= 5; j++) { // (가로)j도 5번 반복문을 증가 수행하는데, ▽
if (i + j < 6) { // 맞다면, i + j 합친 값이 6보다 작다면 "☆"
System.out.print("☆");
} else { // 아니라면 "★"
System.out.print("★");
}
}
System.out.println();
☆☆☆☆★
☆☆☆★★
☆☆★★★
☆★★★★
★★★★★
Scanner (키보드 출력문)
(String 문자열로 반환시켜줌)
.next() : 공백을 기준으로 한 단어, 혹은 한문자씩 입력 받음
.nextLine() : 문자 또는 엔터를 치기 전까지의 문장 전체를 입력 받음
https://velog.io/@suyyeon/JAVA-Scanner%ED%81%B4%EB%9E%98%EC%8A%A4-next-nextLine-%EC%B0%A8%EC%9D%B4
// pizza 라는 새로운객체를 만들기
Scanner pizza = new Scanner (System.in); // 글자로 입력받음
System.out.println("어느 피자를 고르시겠습니까? >> ");
String menu = pizza.next(); // menu = pizza 연결시켜줌
// .next() / .nextLine() 차이?
// Scanner 클래스의 메소드
// 공통점: 문자열로 반환시켜줌
// .next() : 공백을 기준으로 한단어, 혹은 한문자씩 입력 받는다.
// .nextLine() : 문자 또는 엔터를 치기 전까지의 문장 전체를 입력받음
System.out.println ("콜라 500ml 몇병 필요 ? >>");
int coke = pizza.nextInt(); // 숫자로 입력받음
System.out.println("[주문] " + menu + "피자 + " + "콜라 " + coke + "병 주문.");
pizza.close(); // 피자의 객체 입력스트림 제거
어느 피자를 고르시겠습니까? >>
햄
콜라 500ml 몇병 필요 ? >>
3
[주문] 햄피자 + 콜라 3병 주문.
// 키보드로 접수를 입력받아 학점을 계산하여 출력하는 프로그램 작성
// 100 ~ 90 : A
// 89 ~ 80 : B
// 79 ~ 70 : C
// 69 ~ 60 : D
// 59 ~ 0 : F
+ // 키보드로 입력된 점수가 0 ~ 100범위의 정수값이 아닌 겨우 에러 메세지 출력 후 재입력 되도록 해주기
// 100 ~ 90 : A
// 89 ~ 80 : B
// 79 ~ 70 : C
// 69 ~ 60 : D
// 59 ~ 0 : F
+ // 키보드로 입력된 점수가 0 ~ 100범위의 정수값이 아닌 겨우 에러 메세지 출력 후 재입력 되도록 해주기
Scanner pizza = new Scanner (System.in);
int score; // 예외값 설정해줌
while(true) { // 조건식 대신 [true]를 사용하면 무조건 참 - (무한루프)
System.out.print("점수 입력[ 0 ~ 100] >> ");
score = pizza.nextInt();
if(score >= 0 && score <= 100) break; // 입력값이 정상값이면 반복문 종료=break (score가 0이상 100이하면 정상값)
System.out.println("[에러] 점수는 0~100 범위의 정수값만 입력 가능합니다.");
// 비정상적인 값이 입력된 경우 에러 메세지 출력 후 반복문 재실행 △
}
// 점수 등급 설정해줌 ▽
String grade = " "; // grade 저장해줌
switch (score/10) { // 점수기준이 10단위로 딱딱 떨어져서 적어도됨
case 10:
case 9: grade = "A";
break; // break;를 사용함으로써 밑 실행문을 중지( 조건이 해당된다면)
case 8: grade = "B";
break; // break;를 사용함으로써 밑 실행문을 중지( 조건이 해당된다면)
case 7: grade = "C";
break; // break;를 사용함으로써 밑 실행문을 중지( 조건이 해당된다면)
case 6: grade = "D";
break; // break;를 사용함으로써 밑 실행문을 중지( 조건이 해당된다면)
default: grade = "F";
// 이외에는 F학점
}
System.out.println("[결과] " + score + "점 = " + grade + "학점");
scanner.close();