2011-10-08 2 views
0

나는 '(+ s [i])'에서 어떻게 사용되는지 이해하지 못합니다. '+'는 무엇입니까? 또한 나는 || 이 방법으로 기호, 뭐하는거야?어떻게 아래의 자바 스크립트를 C#으로 변환합니까?

var draw = function(s){ 
... 
if (+s[i]) a = (a+90)%360||360; // Right 
else a = (a-90||360); // Left 

아래 코드에서 'while (n--)'은 무엇을 의미합니까?

var getS = function(n){ 
    var s = ''; 
    while (n--) s += getNext(0); 
    return s; 
}; 

당신이 컨텍스트에서이 코드를 보면하려면

는 개발자 도구를 얻고 스크립트 dragon.js을 찾아 http://fractal.qfox.nl/ 눌러 F12로 이동합니다. 당신이 도전을 좋아한다면 C#으로 완전한 번역을 게시 할 수 있습니다.

답변

6

표현식 앞에 +를 붙이면 숫자로 변환됩니다. 문자열에서.

|| 연산자는 왼쪽면의 값을 true로 변환 할 수 있으면 그렇지 않으면 오른쪽면의 값을 갖습니다. 따라서 || b는 "null, false, zero 또는 빈 문자열이 아닌 경우 a를 사용하고 그렇지 않으면 b를 사용합니다"를 의미합니다.

n--은 n이 0이되면 부울 값 false가됩니다. S가 [I] 다수 존재하고있는 경우

2

if (+s[i])가 검사된다! = 0 C#에서 그것이

int n; 
if (int.TryParse(s[i], out n) && n != 0) { } 

a = (a-90||360); 같은 것이 기본적 경우 레프트 사이드의 말하는 || null, undefined, false 또는 0이면 rightide를 취합니다. C#에서 그것은 그 라인 이전에 선언되어야 할 것이다

a = (a-90 > 0)? a-90 : 360; 

하지만 a과 같을 것입니다. n은 0 n을 같은 var n = 10;하지만 그 코드를 실행하기 전에 선언해야합니다 때까지


while (n--){ } 자체를 반복 유지합니다. C에서 #

int n = 10; 
while (n >= 0) 
{ 
    n--; 
} 
+0

"if (+ s [i])가 s [i]가 존재하고 숫자인지 확인합니다." 별로. 's [i]'가 0이면 숫자이지만 0은 false로 변환되기 때문에 테스트에 실패합니다. C# 버전에서는 0을 숫자로 올바르게 취급합니다. –

+0

코드를 수정했습니다. 포인터 주셔서 감사합니다. – Christian

관련 문제