프로그램의 흐름을 바꾸어 주는 구문
선택문 (1. if, 2. switch : 사용하는 형태에 따라 나뉨)
반복문 (3. for문, 4.중첩 for문, 5. while문)
기타 (6. break, continue, return)
public class IfApp {
public static void main(String[] args) {
//예제1
//int su=90;
int su=40;
//변수값이 50 이상인 경우에만 화면에 변수값 출력
/*
if(su>=50) {System.out.println("su = "+su);}
*/
//{ } 안에 명령이 하나이므로 { } 기호 생략
if(su>=50) System.out.println("su = "+su);
//예제2
//int score=80;
int score=50;
/*
//변수값이 60 이상인 경우 합격 메세지를 출력하고 60 미만인 경우 불합격 메세지 출력
if(score>=60) {System.out.println("[결과]점수가 60점 이상이므로 합격입니다.");}
if(score<60) {System.out.println("[결과]점수가 60점 미만이므로 불합격입니다.");}
*/
//변수값이 60 이상인 경우 합격 메세지를 출력하고 아니라면 불합격 메세지 출력
if(score>=60) {
System.out.println("[결과]점수가 60점 이상이므로 합격입니다.");
} else { System.out.println("[결과]점수가 60점 미만이므로 불합격입니다."); }
//예제3
//int num=9;
int num=10;
//변수값을 홀수 또는 짝수로 구분하여 출력 => X%Y==0 이면 X는 Y의 배수
/*
if(num%2!=0) {System.out.println(num+" >> 홀수");}
if(num%2==0) {System.out.println(num+" >> 짝수");}
*/
if(num%2!=0) {
System.out.println(num+" >> 홀수");
} else { System.out.println(num+" >> 짝수"); }
//예제4
//char mun='O';
char mun='0';
//문자변수에 저장된 문자값을 영문자와 비영문자로 구분하여 출력
// X>=작은값 && X<=큰값 : X는 작은값부터 큰값 사이의 범위안에 표현되는 값
if(mun>='A' && mun<='Z' || mun>='a' && mun<='z') {
System.out.println("[결과]"+mun+" >> 영문자");
} else { System.out.println("[결과]"+mun+" >> 비영문자"); }
//예제5
//상태에 따라 결과 달라질때 bllolean 변수 사용 ex)마우스를 누른 상태에서 그리냐 아니냐
//컴파일러는 번역하는것(실행하는것 X),조건이 컴파일 되기 전에는 참인지 거짓인지 알수없음
//boolean sw=true;
boolean sw=false;
/*
//조건식 대신 boolean 변수값을 이용하여 명령 선택 실행 가능
if(sw) {System.out.println("현재 변수값은 [참]입니다.");}
else {System.out.println("현재 변수값은 [거짓]입니다.");}
*/
if(!sw) {System.out.println("현재 변수값은 [거짓]입니다.");}
else {System.out.println("현재 변수값은 [참]입니다.");}
//예제6
int jumsu=85;
//int jumsu=185;
//변수값이 0~100 범위의 유효값인지 아닌지를 구분하여 출력 (입력값에 대한 유효성 검증)
//if문 다섯개를 작성하는 것보다 else if문이 효율성, 가독성이 좋음
if(jumsu>=0 && jumsu<=100) {
//System.out.println("[결과] 0~100 범위의 정상적인 값이 입력 되었습니다.");
//변수값으로 등급을 구분하여 출력 원할 시
//100~90 : A, 89~80 : B, 79~70 : C, 69~60 : D, 59~0 : F
String grade=""; //등급을 저장하기 위한 변수 (초기화 설정)
/*
if(jumsu<=100 && jumsu>=90) {grade="A";}
else if(jumsu<=89 && jumsu>=80) {grade="B";}
else if(jumsu<=79 && jumsu>=70) {grade="C";}
else if(jumsu<=69 && jumsu>=60) {grade="D";}
else if(jumsu<=59 && jumsu>=0) {grade="F";}
*/
if(jumsu>=90) {
grade="A";
} else if(jumsu>=80) {
grade="B";
} else if(jumsu>=70) {
grade="C";
} else if(jumsu>=60) {
grade="D";
} else {grade="F";} //모든 조건식이 거짓인 경우 실행될 명령
System.out.println("[결과]"+jumsu+"점 >> "+grade+"학점");
} else { System.out.println("[에러]0~100 범위을 벗어난 비정상적인 값이 입력."); }
값을 비교하여 명령 선택 실행 (실수값 비교 제외)
메뉴 선택할때 사용하나 거의 사용하지 않음
간단한 값에 대한 비교는 if문보다 가독성 좋으나 비교가 같아야 하기 때문에 선택의 폭 좁아
형식) : switch (비교대상) {
case 값1 : 명령; 명령; ... [break;] // :는 케이스값을 이용해서 위치를 표현하는 문자
case 값2 : 명령; 명령; ... [break;]
case 값3 : 명령; 명령; ... [break;]
···
[ default : 명령; 명령; ...]}
비교대상에는 변수 또는 연산식을 작성하여 비교하고자 하는 값을 제공
switch의 값을 case에 작성된 값과 비교하여 같은 경우 해당 위치로부터 작성된 모든 명령 실행
case의 값은 반드시 리터럴만 사용 가능하며 case의 값을 중복 선언하면 에러 발생
모든 비교값이 다른 경우 default에 작성된 명령 실행 (생략 가능)
public class SwitchApp {
public static void main(String[] args) {
//예제1
//int choice=1;
int choice=2;
//int choice=3;
switch(choice) {
case 1:System.out.println("수성으로 이동합니다.");
case 2:System.out.println("금성으로 이동합니다.");
case 3:System.out.println("화성으로 이동합니다."); }
//결과 : 금성으로 이동합니다. /n 화성으로 이동합니다.
//예제2
choice=4;
//switch의 값과 case의 값이 모두 다른 경우 명령 미실행
//switch의 값과 case의 값이 모두 다른 경우 default 입력 시 default 위치의 명령 실행
switch(choice) {
case 1:System.out.println("수성으로 이동합니다.");
case 2:System.out.println("금성으로 이동합니다.");
case 3:System.out.println("화성으로 이동합니다.");
default: System.out.println("지구로 이동합니다."); }
//예제3
choice=1;
switch(choice) {
case 1:System.out.println("수성으로 이동합니다.");//break구문 만나면 switch 강제종료
case 2:System.out.println("금성으로 이동합니다."); break;
case 3:System.out.println("화성으로 이동합니다."); break; }
//예제4
int jumsu=85;
//변수값이 0~100 범위의 유효값인지 아닌지를 구분하여 출력 (입력값에 대한 유효성 검증)
if(jumsu>=0 && jumsu<=100) {
//System.out.println("[결과]0~100 범위의 정상적인 값이 입력 되었습니다.");
//100~90 : A, 89~80 : B, 79~70 : C, 69~60 : D, 59~0 : F
//(변수값으로 등급을 구분하여 출력)
String grade="";
switch(jumsu/10) {
case 10:
case 9: grade="A"; break;
case 8: grade="B"; break;
case 7: grade="C"; break;
case 6: grade="D"; break;
default: grade="F"; }
System.out.println("[결과]"+jumsu+"점 >> "+grade+"학점");
} else { System.out.println("[에러]0~100 범위을 벗어난 비정상적인 값이 입력."); }
//예제5
String kor="둘";
String eng="";
switch (kor) {
case "하나": eng="One"; break;
case "둘": eng="Two"; break;
case "셋": eng="Three"; break; }
System.out.println("[결과]"+kor+" = "+eng);
public class ForApp {
public static void main(String[] args) {
//예제1
//"Java Programming"를 화면에 5번 출력 방법1
for(int i=1;i<=5;i++){//i에1을 저장해서 5보다 작거나 같으면 실행 후 i에+1해서 반복 실행
System.out.println("Java Programming"); }
//"Java Programming"를 화면에 5번 출력 방법2
for(int i=5;i>=1;i--) {
System.out.println("Java Programming"); }
//"Java Programming"를 화면에 5번 출력 방법3
for(int i=2;i<=10;i+=2) {
System.out.println("Java Programming"); }
//예제2
//"1 2 3 4 5" 출력
for(int i=1;i<=5;i++) {
System.out.print(i+"\t"); }
System.out.println(); //엔터(Enter)만 출력
//"5 4 3 2 1" 출력
/*
for(int i=1;i<=5;i++) {
System.out.print((6-i)+"\t");}
*/
for(int i=5;i>=1;i--) {
System.out.print(i+"\t"); }
System.out.println();
//"2 4 6 8 10" 출력
/*
for(int i=2;i<=10;i+=2) {
System.out.print(i+"\t"); }
*/
for(int i=1;i<=10;i++) {
if(i%2==0) {System.out.print(i+"\t"); }
}
System.out.println();
//예제3
//1~100 범위의 정수들의 합계를 계산하는 프로그램 => 1+2+3+...+98+99+100 = ?
int tot=0; //정수들의 합계를 저장할 변수
for(int i=1;i<=100;i++) {//tot=1+2+3+...+98+99+100
tot+=i;
}
System.out.println("1~100 범위의 정수들의 합계 = "+tot);
알고리즘(Algorithm) : 프로그램 작성시 발생되는 문제를 해결하기 위한 명령의 흐름
public class ForApp {
public static void main(String[] args) {
//두 변수에 저장된 정수값 범위의 합계를 계산하여 출력
//int begin=20, end=80;
int begin=80, end=20;
/*
//시작값이 종료값보다 큰 경우 에러메세지 출력 후 프로그램 강제 종료
if(begin>end) {
System.out.println("[에러]시작값이 종료값보다 작아야 됩니다.");
System.exit(0);//프로그램을 강제로 종료하는 메소드 호출 }
*/
//시작값이 종료값보다 큰 경우 두 변수에 저장된 값을 서로 바꾸어 저장되도록 작성
if(begin>end) {
int temp=begin;
begin=end;
end=temp; }
int sum=0;
for(int i=begin;i<=end;i++) {
sum+=i; }
System.out.println(begin+"~"+end+" 범위의 정수들의 합계 = "+sum);
public class ForApp {
public static void main(String[] args) {
for(int i=1,j=5;i<=3;i++,j--) {
System.out.println("i = "+i+", j = "+j); }
//결과 : i=1,j=5/i=2,j=4/i=3,j=3
int i=1; //for 구문에 상관없이 계속 존재
//for 구문의 초기식,조건식,증감식 생략 가능
for(;i<=4;i++) {//초기식 생략
System.out.print(i+"\t"); }
//결과 : 1 2 3 4
//i=5;
for(;i>=1;i--) {
System.out.print(i+"\t"); }
System.out.println();
//결과 : 1 2 3 4 5 4 3 2 1
조건식이 생략되면 무조건 참으로 처리되면서 무한루프 (종료되지 않는 반복문)
for(;;) {System.out.println("무한 반복되어 실행되는 명령"); }
블럭({ }) 내부에 선언된 변수
선언된 블럭 내부에서만 사용 가능하며 지역변수가 선언된 블럭이 종료되면 지역변수 자동 소멸
public class LocalVariableApp {
public static void main(String[] args) {
int num1=100;
//임의블럭
{
int num2=200;
System.out.println("========== 임의블럭 내부 ==========");
System.out.println("num1 = "+num1);
System.out.println("num2 = "+num2);
}
System.out.println("========== 임의블럭 외부 ==========");
System.out.println("num1 = "+num1);
//임의블럭 종료시 num2 변수가 자동 소멸되므로 사용 불가능
//System.out.println("num2 = "+num2); }
public class IfExample {
public static void main(String[] args) {
//예제1
//변수에 저장된 문자값을 출력(변수에 저장된 문자값이 소문자인 경우 대문자로 변환하여 출력)
char mun='x';
if(mun>='a' && mun<='z') { //변수값이 소문자인 경우
mun-=32; //변수값을 대문자로 변환
}
System.out.println("mun = "+mun);
//예제2
//변수에 저장된 정수값이 4의 배수인지 아닌지를 구분하여 출력하세요.
int num=345644;
if(num%4==0) { //변수값이 4의 배수인 경우
System.out.println("[결과]"+num+" >> 4의 배수가 맞습니다.");
} else {
System.out.println("[결과]"+num+" >> 4의 배수가 아닙니다.");
}
//예제3
//올해가 평년인지 윤년인지를 구분하여 출력하세요.
// => 년도를 4로 나누어 나머지가 0인 경우 윤년
// => 위 조건을 만족하는 년도 중 100으로 나누어 나머지가 0인 경우 평년
// => 위 조건을 만족하는 년도 중 400으로 나누어 나머지가 0인 경우 윤년
int year=2022;
if(year%4==0 && year%100!=0 || year%400==0) {
System.out.println("[결과]"+year+"년은 윤년입니다.");
} else {
System.out.println("[결과]"+year+"년은 평년입니다.");
}
//예제4
//이름이 [홍길동]인 학생이 국어점수 89점, 영어점수 93점, 수학점수 95점을 받은 경우
//총점과 평균, 학점을 계산하여 이름, 총점, 평균, 학점을 출력하세요.
// => 국어,영어,수학 점수 중 하나라도 0~100 범위가 아닌 경우 프로그램 강제 종료
// System.exit(0) : 프로그램을 강제로 종료하는 메소드
// => 평균을 이용한 학점 계산 : 100~90:A, 89~80:B, 79~70:C, 69~60:D, 59~0:F
// => 평균은 소숫점 두자리까지만 출력하고 나머지는 절삭 처리 하세요.
String name="홍길동";
int kor=189, eng=93, mat=195;
//입력값 검증(Data Validation)
/*
if(kor<0 || kor>100 || eng<0 || eng>100 || mat<0 || mat>100) {
//비정상적인 입력값인 경우
System.out.println("[에러]0~100 범위을 벗어난 비정상적인 점수");
System.exit(0);
}
*/
//검증 결과를 저장하기 위한 변수 - false : 검증 성공, true : 검증 실패
boolean valid=false;
if(kor<0 || kor>100) {
System.out.println("[에러]0~100 범위을 벗어난 비정상적인 국어점수");
//System.exit(0);
valid=true;
}
if(eng<0 || eng>100) {
System.out.println("[에러]0~100 범위을 벗어난 비정상적인 영어점수");
//System.exit(0);
valid=true;
}
if(mat<0 || mat>100) {
System.out.println("[에러]0~100 범위을 벗어난 비정상적인 수학점수");
//System.exit(0);
valid=true;
}
if(valid) { //입력값 검증이 실패된 경우 (적절한 값을 입력했을 경우)
System.exit(0);
}
int tot=kor+eng+mat;
double ave=tot/3.;
String grade="";
switch ((int)ave/10) {
case 10:
case 9: grade="A"; break;
case 8: grade="B"; break;
case 7: grade="C"; break;
case 6: grade="D"; break;
default: grade="F";
}
System.out.println("이름 = "+name+", 총점 = "+tot+", 평균 = "
+(int)(ave*100)/100.+", 학점 = "+grade);
public class ForExample {
public static void main(String[] args) {
//예제1
//본인 이름을 화면에 7번 출력하세요.
//ex) 홍길동 홍길동 홍길동 홍길동 홍길동 홍길동 홍길동
for(int i=1;i<=7;i++) {
System.out.print("홍길동 ");
}
System.out.println();
//예제2
//1~10 범위의 정수 중 홀수를 화면에 출력하세요.
//ex) 1 3 5 7 9
/*
for(int i=1;i<=10;i++) {
if(i%2!=0) {
System.out.print(i+"\t");
}
}
*/
for(int i=1;i<=10;i+=2) {
System.out.print(i+"\t");
}
System.out.println();
//예제3
//1~100 범위의 정수에서 3의 배수들의 합계와 5의 배수들의 합계를 계산하여
//3의 배수의 합계에서 5의 배수의 합계를 뺀 결과값을 출력하세요.
//ex) 결과 = 633
int tot3=0, tot5=0;
for(int i=1;i<=100;i++) {
if(i%3==0) tot3+=i; //3의 배수의 합계 누적
if(i%5==0) tot5+=i; //5의 배수의 합계 누적
}
System.out.println("결과 = "+(tot3-tot5));
//예제4
//구구단 중 7단을 화면에 출력하세요.
//ex) 7 * 1 = 7
// ...
// 7 * 9 = 63
int dan=7;
for(int i=1;i<=9;i++) {
System.out.println(dan+" * "+i+" = "+(dan*i));
}
//예제5
//5!의 결과값을 출력하세요.(5! = 5 * 4 * 3 * 2 * 1)
//ex) 5! = 120
int num=5, fac=1;
for(int i=num;i>=1;i--) {
fac*=i;
}
System.out.println(num+"! = "+fac);
//예제6
//두 변수에 저장된 정수값 사이의 정수들을 화면에 출력하세요.
//단, 한 줄에 정수값이 7개씩 출력되도록 프로그램을 작성하세요.
//ex) 36 37 38 39 40 41 42
// 43 44 45 46 47 48 49
// 50 51 52 53 54 55 56
// 57
int begin=36, end=57;
int count=0; //출력갯수를 저장할 변수
for(int i=begin;i<=end;i++) {
System.out.print(i+"\t");
count++;
if(count%7==0) {
System.err.println();
}
}
System.out.println();
public class MultiforApp {
public static void main(String[] args) {
//예제1
int cnt=0;//이동방법의 갯수를 저장하기 위한 변수
for(int i=1;i<=3;i++) {//A나라 >> 섬 - 반복문
for(int j=1;j<=4;j++) {//섬 >> B나라 - 반복문
cnt++;}
}
System.out.println("이동방법의 갯수 = "+cnt); //cnt=12
//예제2
//★★★★★★★
//★★★★★★★
//★★★★★★★
//★★★★★★★
for(int i=1;i<=4;i++) { //행(Row)을 처리하기 위한 반복문
for(int j=1;j<=7;j++) { //열(Column)을 처리하기 위한 반복문
System.out.print("★");
}
System.out.println();}
//예제3
//2*1=2 3*1=3 ... 8*1=8 9*1=9
//2*2=4 3*2=6 ... 8*2=16 9*2=18
//...
//2*8=16 3*8=24 ... 8*8=64 9*8=72
//2*9=18 3*9=27 ... 8*9=72 9*9=81
for(int i=1;i<=9;i++) {
for(int j=2;j<=9;j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();}
//예제4
//★ i=1 별=1
//★★ i=2 별=2
//★★★ i=3 별=3
//★★★★ i=4 별=4
//★★★★★ i=5 별=5
for(int i=1;i<=5;i++) {
for(int j=1;j<=i;j++) {
System.out.print("★");
}
System.out.println();}
//예제5-1
//★★★★★ i=1 별=5
//★★★★ i=2 별=4
//★★★ i=3 별=3
//★★ i=4 별=2
//★ i=5 별=1
for(int i=1;i<=5;i++) {
for(int j=1;j<=6-i;j++) {
System.out.print("★");
}
System.out.println();}
//예제5-2
//★★★★★ i=5 별=5
//★★★★ i=4 별=4
//★★★ i=3 별=3
//★★ i=2 별=2
//★ i=1 별=1
for(int i=5;i>=1;i--) {
for(int j=1;j<=i;j++) {
System.out.print("★");
}
System.out.println();}
//예제6-1
//☆☆☆☆★ 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++) {
for(int j=1;j<=5-i;j++) {
System.out.print("☆");}
for(int j=1;j<=i;j++) {
System.out.print("★");}
System.out.println();}
//예제6-1
// 1 2 3 4 5 >> j
//☆☆☆☆★ i=1
//☆☆☆★★ i=2
//☆☆★★★ i=3
//☆★★★★ i=4
//★★★★★ i=5
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
if(i+j<6) {
System.out.print("☆");
} else {
System.out.print("★");
}
}
System.out.println();}
public class WhileApp {
public static void main(String[] args) {
//예제1
//"Java Programming"를 화면에 5번 출력
int i=1;
while(i<=5) {
System.out.println("Java Programming");
i++;}
//예제2
//1~100 범위의 정수들의 합계를 계산하여 출력
int j=1, tot=0;
do {
tot+=j;
j++;
} while(j<=100);
System.out.println("1~100 범위의 정수들의 합계 = "+tot);
//예제3
//A4 용지를 반으로 계속 접어 펼쳤을 경우 사각형 모양의 갯수가 500개 이상이 만들어지려면
//몇번 접어야 되는지 계산하여 출력
int cnt=0, gae=1; //cnt : 접는 횟수, gae : 사각형 모양의 갯수
while(gae<500) { //A4 용지를 반으로 접는 행위를 반복 처리
cnt++; //접는 횟수는 1씩 증가
gae*=2; //사각형 모양의 갯수는 2배씩 증가
}
System.out.println(cnt+"번 접으면 "+gae+"개의 사각형이 만들어집니다.");
//예제4
//1~X 범위의 정수들의 합계가 300 이상이 만들어지려면 X가 얼마인지 계산하여 출력
int x=0, sum=0;//x : 1씩 증가되는 정수값 저장, sum : 누적결과(합계) 저장
while(sum<300) {
x++;
sum+=x;
}
System.out.println("1~"+x+" 범위의 정수들의 합계 = "+sum);
public class BreakApp {
public static void main(String[] args) {
//예제1
//기본적으로 반복문은 조건식이 거짓인 경우 종료
for(int i=1;i<=5;i++) {
if(i==3) break; //if 구문의 조건이 참인 경우 break 명령으로 반복문 종료
System.out.print(i+"\t");//1 2출력
}
System.out.println();
//예제2
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
if(j==3) break; //for(int j=1;j<=5;j++) 반복문 종료
System.out.println("i = "+i+", j = "+j);}
}//(1,1),(1,2),(2,1),(2,2),(3,1),(3,2),(4,1),(4,2),(5,1),(5,2) 출력
//예제3
//반복문에서 반복문을 구분하기 위한 식별자(라벨명) 선언 가능
//형식) 라벨명:반복문
loop:
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
//break 라벨명 : 라벨명으로 표현된 반복문 종료
if(j==3) break loop; //for(int i=1;i<=5;i++) 반복문 종료
System.out.println("i = "+i+", j = "+j);}
}//(1,1),(1,2) → loop반복문 종료
public class ContinueApp {
public static void main(String[] args) {
//예제1
for(int i=1;i<=5;i++) {
if(i==3) continue;
System.out.print(i+"\t");
}//1 2 4 5 출력
System.out.println();
//예제2
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
if(j==3) continue; //for(int j=1;j<=5;j++) 반복문 재실행
System.out.println("i = "+i+", j = "+j);}
}//(1,1),(1,2),(1,4),(1,5),(2,1),(2,2),(2,4),(2,5),···(5,5) 출력
//예제3
loop:
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
if(j==3) continue loop; //for(int i=1;i<=5;i++) 반복문 재실행
System.out.println("i = "+i+", j = "+j);}
}//(1,1),(1,2),(2,1),(2,2),(3,1),(3,2),(4,1),(4,2),(5,1),(5,2) 출력
public class MultiforExample {
public static void main(String[] args) {
//예제1
//★★★★★ i=1 별=5
//★★★★ i=2 별=4
//★★★ i=3 별=3
//★★ i=4 별=2
//★ i=5 별=1
for(int i=1;i<=5;i++) {
for(int j=1;j<=6-i;j++) {
System.out.print("★");}
System.out.println();}
//예제2
// 1 2 3 4 5 >> j
//★★★★★ i=1 흰별=0 검은별=5
//☆★★★★ i=2 흰별=1 검은별=4
//☆☆★★★ i=3 흰별=2 검은별=3
//☆☆☆★★ i=4 흰별=3 검은별=2
//☆☆☆☆★ i=5 흰별=4 검은별=1
/*
for(int i=1;i<=5;i++) {
for(int j=1;j<=i-1;j++) {
System.out.print("☆");}
for(int j=1;j<=6-i;j++) {
System.out.print("★");}
System.out.println();}
*/
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
if(i>j) {
System.out.print("☆");
} else {
System.out.print("★");}
}
System.out.println();}
//예제3
//★ i=1 별=1
//★★★ i=2 별=3
//★★★★★ i=3 별=5
//★★★★★★★ i=4 별=7
//★★★★★★★★★ i=5 별=9
for(int i=1;i<=5;i++) {
/*
for(int j=1;j<=5-i;j++) {
System.out.print(" ");
}
*/
for(int j=1;j<=i*2-1;j++) {
System.out.print("★");}
System.out.println();}
//예제4
// 1 2 3 4 5 >> j
//★☆☆☆★ i=1
//☆★☆★☆ i=2
//☆☆★☆☆ i=3
//☆★☆★☆ i=4
//★☆☆☆★ i=5
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
if(i==j || i+j==6) {
System.out.print("★");
} else {
System.out.print("☆");}
}
System.out.println();}