Boolean ejemplo de retorno respuesta inesperada

Sakib Shaikh:

Iba a través de Java prueba dada en indiabix y hay una pregunta booleano fue algo como -

public class If2 
{
    static boolean b1, b2;
    public static void main(String [] args) 
    {
        int x = 0;
        if ( !b1 ) /* Line 7 */
        {
            if ( !b2 ) /* Line 9 */
            {
                b1 = true;
                x++;
                if ( 5 > 6 ) 
                {
                    x++;
                }
                if ( !b1 ) /* Line 17 */
                    x = x + 10;
                else if ( b2 = true ) /* Line 19 */
                    x = x + 100;
                else if ( b1 | b2 ) /* Line 21 */
                    x = x + 1000;
            }
        }
        System.out.println(x);
    }
}

Ahora el explnation dice - como variables de instancia, B1 y B2 se inicializan con falso. El si las pruebas en las líneas 7 y 9 tienen éxito b1 por lo que se establece en true y x se incrementa. El siguiente si la prueba es para tener éxito en la línea 19 (nota que el código no está poniendo a prueba para ver si b2 es cierto, es el establecimiento de b2 es verdad). Desde la línea 19 tuvo éxito, posterior demás, si se saltará de (línea 21). Así, la respuesta llega a 101 y no 111. Pero ¿por qué el if ( !b1 )ser ignorados en la línea 17. ¿Es que la if ( !b1 )línea 7 sólo se considera el aspecto verdadero y más adelante de if ( !b1 )la línea 17 se ignora. Mi comprensión dice respuesta debe ser 111 y no 101.

Eran :

En la línea 17 b1es ya true, desde que se establece en trueen la línea 11. Por lo tanto if ( !b1 )evalúa a false.

Por tanto, sólo else if ( b2 = true )se evalúa a true(y también asigna truea b2), y añade 100 a x.

x ya se incrementó una vez antes de que (línea 12), por lo que termina con el valor 101.

Tenga en cuenta que 111 hubiera sido una salida imposible, incluso si if ( !b1 )evalúa a true, ya que en ese caso else if ( b2 = true )no sería evaluado y xterminaría con el valor 11.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=223112&siteId=1
Recomendado
Clasificación