<div>안녕하세요 회원 점수에 의해서 그 회원의 래밸을 정할려고 합니다.</div> <div>회원 점수는 게시판 글쓰기, 출석 등등으로 올라가게 됩니다.</div> <div> </div> <div> </div> <div>근데 여기서 회원 래밸이 1~100까지로 정했는데</div> <div> </div> <div> </div> <div> </div> <div>1래밸 : 0~10점</div> <div>2래밸 : 11~20점</div> <div>3래밸 : 21~30점</div> <div>.</div> <div>.</div> <div>.</div> <div>10래밸 : 91~100점 (10씩 증가)</div> <div> </div> <div> </div> <div> </div> <div>그리고 11~20래밸부터</div> <div>10래밸 : 101 ~120점</div> <div>11래밸 : 121 ~ 140점</div> <div>12래밸 : 141 ~ 160점</div> <div>13래밸 : 161 ~ 180점</div> <div>.</div> <div>.</div> <div>20래밸 : 281 ~ 300점 (20씩 증가)</div> <div> </div> <div> </div> <div> </div> <div>21~30래밸 (30씩 증가)</div> <div>21래밸 : 301 ~ 330점</div> <div>22래밸 : 331 ~ 360점 </div> <div> </div> <div> </div> <div> </div> <div>이렇게 증가하는 공식이 있습니다. 혹시 너무 어렵게 썻는지... 걱정되네요</div> <div>우선 제 머리로는 이렇게 소스를 구현 했습니다. 언어 : javascript</div> <div> </div> <div> </div> <div>var score; // 점수를 담는 변수 입니다.</div> <div> </div> <div>for (var i =0; i<10; i++){</div> <div> if( (i*10) =< score && ((i+1)*10) > score){</div> <div> alert("현재 래밸은 : " + (i+1)); // 조건이 만족하면 (i+1) 값이 1~10 래밸이 된다 </div> <div> }</div> <div>}</div> <div> </div> <div>for (var i =0; i<10; i++){</div> <div> if( (i*20)+101 =< score && ((i+1)*20)+100 > score){</div> <div> alert("현재 래밸은 : " + (i+11)); // 조건이 만족하면 (i+11) 값이 11~20 래밸이 된다 </div> <div> }</div> <div>}</div> <div> </div> <div>for (var i =0; i<10; i++){</div> <div> if( (i*30)+301 =< score && ((i+1)*30)+300 > score){</div> <div> alert("현재 래밸은 : " + (i+21)); // 조건이 만족하면 (i+21) 값이 21~30 래밸이 된다 </div> <div> }</div> <div>}</div> <div> </div> <div>for (var i =0; i<10; i++){</div> <div> if( (i*40)+601 =< score && ((i+1)*40)+600 > score){</div> <div> alert("현재 래밸은 : " + (i+31)); // 조건이 만족하면 (i+31) 값이 31~40 래밸이 된다 </div> <div> }</div> <div>}</div> <div>--------------------------------------- 이런식으로 10개를 작성후 공통적인 for ( var i=0 ; i<10; i++)를 묶어</div> <div> </div> <div> </div> <div> </div> <div>for (var i =0; i<10; i++){</div> <div> if( (i*10) =< score && ((i+1)*10) > score){</div> <div> alert("현재 래밸은 : " + (i+1)); // 조건이 만족하면 (i+1) 값이 1~10 래밸이 된다 </div> <div> }</div> <div> </div> <div> if( (i*20)+101 =< score && ((i+1)*20)+100 > score){</div> <div> alert("현재 래밸은 : " + (i+11)); // 조건이 만족하면 (i+11) 값이 11~20 래밸이 된다 </div> <div> }</div> <div> </div> <div> if( (i*30)+301 =< score && ((i+1)*30)+300 > score){</div> <div> alert("현재 래밸은 : " + (i+21)); // 조건이 만족하면 (i+21) 값이 21~30 래밸이 된다 </div> <div> }</div> <div> </div> <div> if( (i*40)+601 =< score && ((i+1)*40)+600 > score){</div> <div> alert("현재 래밸은 : " + (i+31)); // 조건이 만족하면 (i+31) 값이 31~40 래밸이 된다 </div> <div> }</div> <div> </div> <div>.</div> <div>.</div> <div>.</div> <div>.</div> <div>.</div> <div> if( (i*100)+3501 =< score && ((i+1)*100)+3500 > score){</div> <div> alert("현재 래밸은 : " + (i+91)); // 조건이 만족하면 (i+91) 값이 91~100 래밸이 된다 </div> <div> }</div> <div>}</div> <div> </div> <div> </div> <div>이렇게 했습니다. 음... 최대한 줄이긴 줄인건데.. 혹시 여기서 좀더 줄일수가 있을까요?</div> <div>javascript지만 연산하는건 C나 C++와 비슷하다고 생각합니다.</div> <div>0~9까지는 공통으로 되서 묶었고 그다음에 증가되는게 +0 , +100 , +300 , +600 , +1000, +1500 , +2100 이렇게</div> <div> </div> <div>0 100 200 300 400 500 600 700 800 900 1000 씩 더하는 규칙</div> <div>i * 10, i * 20 , i * 30 이렇게 10*(1~10) 까지의 규칙을 생각하여</div> <div>for문 안에 for문을 열어보았습니다.</div> <div> </div> <div> </div> <div> </div> <div> </div> <div>var add=0;</div> <div> </div> <div>for (var j =0; i<10; j++){</div> <div> </div> <div> </div> <div> for (var i =0; i<10; i++){</div> <div> if( (i*((j+1)*10))+add =< score && ((i+1)*((j+1)*10))+add > score){</div> <div> alert("현재 래밸은 : " + ( i+ ((j*10+1)) ); // 조건이 만족하면 0~100까지 출력된다 </div> <div> }</div> <div> </div> <div> add = add + (100 * j);</div> <div>}</div> <div> </div> <div> </div> <div>-----------------------------------------------------------</div> <div>제 머리로는 이게 한계이며 현재 사정때문에 이걸 직접 돌리지 못하니 이 조건이 맞을지도 의문이 드네요....</div> <div>복잡 할지 몰르나ㅠㅠ 오유님들 조언좀 듣고 싶습니다. 과연 이렇게 돌려도 조건이 잘 될까요?</div> <div>그리고 잘 된다 하면... 여기서 좀더 줄이는 방법은 없을까요?</div> <div> </div> <div>조언 부탁드립니다</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.