2010-11-12 4 views

Répondre

4

Il définit la variable len à la longueur de la chaîne s, ou la longueur de la chaîne t, en fonction de ce qui est plus longue.

+0

pouvez-vous être sûr que len est global? – Fosco

+1

Non, vous ne pouvez pas. Si une ligne précédente a déclaré 'var len', alors c'est local. –

+0

@Joe d'accord, point. Enlever ça. –

2

Si s.length est supérieur à t.length défini len = s.length autre set len = t.length

1

il est l'équivalent de:

var len=0; 
if(s.length>t.length) 
    len= s.length; 
else 
    len=t.length; 

Il est donc juste une façon courte faire faire si d'autre.

+0

En fait, l'original n'a pas 'var', donc ce n'est pas équivalent - vous déclarez une variable locale, alors que l'original peut avoir utilisé un global. –

+1

Peut avoir une variable globale mais peut ne pas avoir, il peut être à l'intérieur d'une fonction et vars globales n'est pas la meilleure pratique de programmation donc c'est la meilleure pratique équivalente. – albanx

0

Il fait ceci:

if (s.length > t.length) { 
    len = s.length; 
} else { 
    len = t.length; 
} 
+0

L'original n'avait pas 'var', donc ce n'est pas équivalent - vous déclarez une variable locale, alors que l'original peut avoir utilisé un global. –

+0

Mis à jour bon monsieur. – Corv1nus

7

?: Est l'opérateur ternaire. Il renvoie une valeur basée sur une condition.

x = (condition)?(if-true):(if-false) 

Donc, si la condition est vraie, x est la valeur dans le cas-vraie section, et si elle est fausse, alors x est la valeur si-faux.

Si est équivalent à ce que Corv1nus a dit plus tôt.

0

len sera attribué la longueur des deux s ou t selon lequel on a une plus grande longueur

0

Si la longueur de s est greather que la longueur de t, faire « len » la longueur de l'art. Si la longueur de s est inférieure ou égale à la longueur de t, faites "len" la longueur de t.