import java.util.Scanner;
public class Ex07 {
public static void main(String[]args) {
Scanner scanner = new Scanner(System.in);
System.out.println("====별찍기 7번====");
System.out.print("출력할 줄 수를 입력해주세요:");
int userNumber = scanner.nextInt();
//총 세로줄수가 얼마인가?
//4+5, 5+6...
//(userNumber-1)+userNumber
for(int height = 1; height <= 2*userNumber-1/* = (userNumber-1)+userNumber */; height++) {
String stars = "";
//height가 userNumber -1 보다 작거나 같은동안 혹은 userNumber보다 작은 동안
if(height < userNumber) {
//윗부분
for(int width = 1; width <= height; width++) {
stars +="*";
}
}else {
//height가 userNumber보다 같거나 클 동안
//=아랫부분
//우리가 userNumber = 5 라고 하면
//height이 얼마일동안 여기로 오는가?
//if조건이 아닌5,6,7...가 else로 오게된다
//그렇다면
//for(int width = height; width <= userNumber; width++)
//으로 쓰게되면 해당 for문은 각각 몇번 반복할까?
//1,0,0,0....반복된다.
//그러면 어떻게 해결해야 할까?
//만약 우리가 변수를 아예 못만들면 머리가 아프겠지만
//변수를 만들어주면 된다
//이 height를 축구 분으로 생각하면
//어떤 방송사는 축구경기 중계할 때 시간을
//1~90분 으로 표시하는 곳이 있고 전반 1~45로 표시하는 곳이 있다
//우리는 위에 height는 그대로 놔두고
//아래 "lowerHeight" 1번째 줄 이렇게 만드는것
int lowerHeight = height - userNumber + 1;
for(int width = lowerHeight; width <= userNumber; width++) {
stars += "*";
}
}
System.out.println(stars);
}
scanner.close();
}
}
'JAVA' 카테고리의 다른 글
(별찍기) 마름모 (0) | 2020.04.23 |
---|---|
(별찍기) 마름모 절반 세로 왼쪽부분 (0) | 2020.04.23 |
(별찍기) 역 정삼각형 (0) | 2020.04.23 |
(별찍기) 정삼각형 (0) | 2020.04.23 |
(별찍기) 오른쪽 아래가 직각인 삼각형 (0) | 2020.04.23 |