일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- react
- includes
- component
- Node.js
- jsx
- map
- wep
- props
- vue.js
- 키다리 개발 일지
- React.js
- React calculator
- tag
- html
- 키다리의 개발일지
- 시맨틱
- web
- CSS
- javascript
- Element
- ES6
- Rendering
- scope
- 노드
- 회고록
- closure
- ecma
- 키다리 개발자
- 볶음밥
- DoM
- Today
- Total
키다리 개발자
Javascript (별, 왕관 찍기, 배열에 값 담기-push()) 본문
Javascript의 for, if문을 이용한 별 찍기와 왕관 찍기를 코드 리뷰를 해보겠습니다.
별찍기 1 ~ 4
for(let i = 1; i <= 5; i++){
let sum = '';
for(let j = 1; j <= i; j++){
sum = sum + '*';
}
console.log(sum);
}
for(let i = 1; i <= 5; i++){
let sum = '';
for(let j = 1; j <= 5 - i + 1; j++){
sum = sum + '*';
}
console.log(sum);
}
for(let i = 1; i <= 5; i++){
let sum = '';
for(let j = 1; j <= 5 - i; j++){
sum = sum + ' ';
}
for(let k = 1; k <= i; k++){
sum = sum + '*';
}
console.log(sum);
}
for(let i = 1; i <= 5; i++){
let sum = '';
for(let j = 1; j <= i - 1; j++){
sum = sum + ' ';
}
for(let k = 1; k <= 5 - i + 1; k++){
sum = sum + '*';
}
console.log(sum);
}
왕관찍기 - 반쪽
변수 select를 이용해 임의 수만큼 지정을 해주어 크기를 변경할 수 있게 하였습니다.
let select = 5;
for (let i = 1; i <= select; i++) {
let sum = "";
for (let j = 1; j <= i; j++) {
sum = sum + "*";
}
for (let k = 1; k <= select * 2 - 1 - 2 * i; k++) {
sum = sum + " ";
}
if (i < select) {
for (l = 1; l <= i; l++) {
sum = sum + "*";
}
} else {
for (l = 1; l < select; l++) {
sum = sum + "*";
}
}
console.log(sum);
}
왕관찍기 대칭
위의 코드를 그대로 for문을 이용하여 대칭으로 만들었습니다.
let select = 5;
for (let i = 1; i <= select; i++) {
let sum = "";
for(let m = 1; m <=2; m++){
for (let j = 1; j <= i; j++) {
sum = sum + "*";
}
for (let k = 1; k <= select * 2 - 1 - 2 * i; k++) {
sum = sum + " ";
}
if (i < select) {
for (l = 1; l <= i; l++) {
sum = sum + "*";
}
} else {
for (l = 1; l < select; l++) {
sum = sum + "*";
}
}
}
console.log(sum);
}
왕관 완성본
위의 왕관은 중앙이 2개로 시작하였지만, 이것이 최종 왕관!
차이점은 if문으로 제어를 해주어 중앙의 별이 1개로 시작하게 끔
두 번째 시작점을(let j = 1) 1 올려주었습니다.
그리고 안쪽 코드를 for문으로 2번 돌려주었습니다.
let select = 4;
for (let i = 1; i <= select; i++) {
let sum = "";
let j = 0;
for(let m = 0; m < 2; m++){
if(j === 0){
for (let j = 0; j < i; j++) {
sum = sum + "*";
}
} else if(j > 0){
for (let j = 1; j < i; j++) {
sum = sum + "*";
}
}
j += 1;
for (let k = 1; k <= select * 2 - 1 - 2 * i; k++) {
sum = sum + " ";
}
if (i < select) {
for (l = 1; l <= i; l++) {
sum = sum + "*";
}
} else {
for (l = 1; l < select; l++) {
sum = sum + "*";
}
}
}
console.log(sum);
}
왕관을 배열에 담기
왕관을 배열에 담아보았습니다.
부모와 자식 배열을 만들어 push() 함수를 이용하여 담아냈습니다.
push() 함수는 값을 추가하는 함수입니다.
밑에 코드에서
arr.push('*'); 는 arr배열 안에 문자열 *를 추가
array.push(arr); 는 array배열 안에 arr이라는 변수에 담긴 배열을 추가
let select = 4;
const array = [];
for (let i = 1; i <= select; i++) {
const arr = [];
let j = 0;
for(let m = 0; m < 2; m++){
if(j === 0){
for (let j = 0; j < i; j++) {
arr.push('*');
}
} else if(j > 0){
for (let j = 1; j < i; j++) {
arr.push('*');
}
}
j += 1;
for (let k = 1; k <= select * 2 - 1 - 2 * i; k++) {
arr.push(' ');
}
if (i < select) {
for (l = 1; l <= i; l++) {
arr.push('*');
}
} else {
for (l = 1; l < select; l++) {
arr.push('*');
}
}
}
array.push(arr);
console.log(array);
}
'Javascript' 카테고리의 다른 글
DOM의 개념, API, Rendering 이란? (0) | 2019.11.20 |
---|---|
Facebook 만들기 (템플릿 문자열-Template string, 객체 배열, data model 속성 가져오기) (0) | 2019.10.24 |
Javascript + HTML + CSS 계산기 만들기 (0) | 2019.10.08 |
Javascript 조건문, 반복문 (if,for) (0) | 2019.10.08 |
Javacript란? (사용법, 주석, 변수, 타입변환, 문자열 연결) (0) | 2019.10.08 |