반복문

문종후·2023년 3월 29일
0
  1. makeDigits
    function makeDigits(num) {
    // TODO: 여기에 코드를 작성합니다.
    let sum='';
    for(i=1;i<=num;i++){
    sum=sum+i }
    return sum

}

간단한 문제기한데 궁금한개념이생겨서 잠깐 가지고나왔다.
위 반복문을 num=3정도 대입해서 한번 굴려보자

for(i=1;i<=3;i++){
sum=sum+i}

i=1->''+1='1'
i=2->'1'+2='12'
i=3->'12'+3='123'

->빈문자열에 숫자를더하면 숫자가 문자열이되버린다. 그리고 문자열이되버린 '1'에 숫자를더하면 문자열로포함되버린다.

자바스크립트 딥다이브 09장에 타입변한과 단축변환을 살짝 읽고 정리해보겠다.(이부분을 내일)...

06_getMaxNumberFromString

max=str[0]
if(str !==''){
for(let i=0;i<str.length;i++){
if(str[i]>max){
max=str[i]
}

}
}
else return '0'
return max
}

ref function getMaxNumberFromString(str) {
// TODO: 여기에 코드를 작성합니다.
let result = 0; // 출력값이 문자열이라 하더라도 숫자들을 비교한 다음 가장 큰 숫자를 뽑아내야 하기 때문에
//숫자열로 출력값을 내고 그것을 최종적으로는 문자열로 변경하는게 좋다.
for ( i = 0; i < str.length; i++) { //초기값 i는 0을 할당하고, str의 길이가 i보다 작을 때까지 i를
//1씩 증감한다.
if (parseInt(str[i]) > result) { //for문에 부합한다면 만약 실수 처리된 str의 i번째 인덱스가
//result보다 크다면
result = parseInt(str[i]); //result에 실수처리된 str에 i번째 인덱스에 할당한다.
}
}
return String(result); //최종적으로 숫자열인 result값에 문자열로 바꿔주어 리턴한다.

문제풀이실수!-> 빈문자열을 리턴하는게아니라 0을리턴하는거였다(str이 비어있을경우 그래서 결과값을 비교해주려고 max라는 변수가 추가되고 복잡해짐. 문제잘읽기;

9~12번 풀어보기

profile
개발자가되고싶은사람

0개의 댓글