Let's analyze the code:
- Line 1 declares an integer array named numbers with size 5. This compiles fine.
- Line 2 declares and initializes an integer x. This compiles fine.
- Line 3 declares but does not initialize an integer y. This compiles fine.
- The for loop on line 4 iterates i from 0 to 4. This compiles fine.
- Line 5 assigns the value of i to the element at index i in the numbers array. This compiles fine.
- Line 6 prints the numbers array. This compiles fine.
- Neither x nor y are included in the output, as they are not used in the print statement.
Therefore
2. Cubre el objetivo:
7.6 Write code that correctly applies the appropriate operators including
assignment operators (limited to: =, +=, -=), arithmetic operators (limited to:
+, -, *, /, %, ++, --), relational operators (limited to: <, <=, >, >=, ==, !=), the
instanceof operator, logical operators (limited to: &, |, ^, !, &&, ||), and the
conditional operator (? :), to produce a desired result. Write code that
determines the equality of two objects or two primitives.
3. Aunque ya se vio la mayoría de las implicaciones
de usar el signo = en el capítulo pasado, los
puntos a destacar son:
Cuando se asigna un primitivo hay que tener en
cuenta el tamaño, debe saber cuando el casteo debe
ser implícito o explícito, y cuando ocurre un
truncamiento de datos
Recuerde que una variable de referencia no es un
objeto, y que el símbolo = no es lo mismo que un
método get.
Cuando se asigna una variable de referencia importa
el tamaño, es decir si el objeto pertenece a una clase
padre, a una subclase, a una interface, o a un array.
4. Existenoperadores compuestos con el
símbolo igual, estos operadores sirven para
acortar las líneas de código.
y = y - 6; y -= 6;
x = x + 2 * 5; x += 2 * 5;
5. Existen 6 operadores relacionales (<, <=, >, >=,
==, and !=). Y sirven para comparar variables.
El uso de estos operadores siempre dan como
resultado un booleano, por lo tanto es muy
común usarlo en las sentencias if.
Animal = unknown
Animal = elephant
Animal = gray elephant
Animal = gray elephant
The animal is a gray elephant
6. A veces suele ponerse algo como esto
El if no tiene una comparación, es decir no se
esta comparando si el valor de b es true o false,
si no que se esta asignando a b true, este tipo de
comparaciones siempre da true. Por lo tanto el
código anterior resulta en “b is true”.
Otro punto que toca tener en cuenta es que los
if siempre evalúan un boleano, por lo tanto esto
arroja un error de compilación
Porque x es entero, y a asignarle a
x un 0 pues resulta un int, que no
es boolean y que el if no acepta
7. Para comparar dos variables se usa el
simbolo == para definir si son iguales, o !=
para ver si son diferentes.
Con estos operadores se pueden analizar
números, caracteres, booleanos y variables
de referencia.
8. true
false
true
true
false
Como puede ver, cuando un número punto
flotante es comparado con un entero y
tienen el mismo valor, la comparación ==
retorna true.
9. En el caso de las variables de referencia, a excepción
de los wrapper la igualdad se da cuando dos variables
contienen el mismo objeto unicamente.
Hay que tener cuidado porque a veces uno tiende a
ver el valor contenido en el objeto, y aunque el valor
sea igual si son dos objetos distintos pues no existe
igualdad.
a c b
Exit Exit
False, porque a y
b apuntan a
diferentes objetos
True, porque a y c
apuntan al mismo
objeto
10. Losenums, al ser una colección de valores
constantes, pues no se manejan como los
objetos, aquí el comportamiento de la
igualdad (==) es el mismo que presenta el
método equals.
En este ejemplo tanto como == como equals dan true, porque
ambas variables contienen la misma constante del enum
==
Dot equals
11. Por medio de esta sentencia se puede definir cuando
un objeto es de un tipo en particular. Es decir
verifica que la propiedad de IS A sea correcta.
Aquí se verifica que s sea
un String, como es correcto
entonces imprime
S is a String
El instanceof también tiene en cuenta la herencia,
por ejemplo, cuando se usa el instanceof contra la
clase padre, es true también.
12. Inclusocuando el objeto que se esta
probando no es una instanciación correcta, el
instanceof arrojará true si el objeto del lado
izquierdo es compatible con el del lado
derecho.
A es compatible de b
Aunque a no hereda de b,
se imprime como true
porque son compatibles.
13. Finalmente es legal usar un null para validar un
instanceof de una clase, pero el resultado
siempre es false.
En ambos casos se hace
una comparación con null,
por lo tanto el resultado es
False false
No se puede usar un instanceof, para comparar
dos objetos que se encuentran en diferentes
líneas de herencia, en caso que se haga sale un
error de compilación
Arroja un error de
compilación porque perro
no hereda de gato
14. Los operadores básicos son +, -, *, /.
El operador % es el residuo de la división
entre dos números.
El resultado de dividir 15
entre 5 es 4 y sobran 3,
entonces el valor de y es 3
15. La concadenación de cadenas se hace con el
símbolo +.
El punto que toca tener en cuanta que
cuando se mezclan números y cadenas,
cuando se hace esto, todo se vuelve cadena,
y se unen los números no se suma.
Como a es una cadena, el
resultado es:
String37
Si se cambia la última línea por esto
B y c son int, por leyes de
parentecis se agrupan b y c
que da 10 y esto se une a la
cadena
String10
16. El operador de incremento es ++, y el de
decremento es –-
Es importante tener en cuenta la posición en
que se encuentran, pues esto determina el
comportamiento que tendrá la instrucción.
Cuando el operador es un
posfijo, entonces ejecuto
la operación, en este caso
imprimir la variable y
después aumento en uno
Cuando el operador es un prefijo,
entonces aumento en uno, y luego
ejecuto la operación, en este caso
imprimir la variable
17. Aquí y = 3, x = 2, comparo
si 3 es igual a 2, siendo
falso, y luego aumento x
en 1. Ahora x vale 3
Aquí x = 3, y = 3, primero aumento y en
1, y vale entonces 4, luego comparo si x
es menor que y, como 3 es menor que 4
El resultado es
entonces es verdadero y entra al if X=3y=4
18. Unoperador condicional es una terna de
elementos que permiten evaluar expresiones
booleanas. La estructura de la sentencia es:
x = (boolean expression) ? value to assign if true : value to assign if false
Por ejemplo: numOfPets = 3, como es
menor que 4, entra a “Pet
limit not exceeded” porque
es cierto
19. Operadores && y ||
Los operadores && (y acortado) y || (o
acortado), sirven para comparar dos decisiones
en un if,
Se caracterizan porque valida la primera
expresión,
En caso de && si la primera condición es false
entonces no evalúa el resto de la expresión y no
entra en la sentencia.
En el caso de || valida la primera condición si es
true, entonces no evalúa el resto de la expresión
y entra en la sentencia.
20. 3 es menor que 5, imprime i<5, y
da como resultado true, y entra a
Operadores && y || el cuerpo del if, imprimiedo
“Result is true”
Aquí no entra, porque al primero
ser true, este operador omite esta
sentencia
6 no es menor que 5,
imprime i>=5, y da como
resultado false
9 no es menor que 5, imprime
i>=5, y da como resultado false,
por lo tanto no entra a el cuerpo
del if
i<5
Result is true
i >= 5
i >= 5
21. Operadores |y&
Estos operadores funcionan parecidos a los de las
diapositivas anteriores, la diferencia es que estos
si analizan siempre todas las condiciones de la
expresión Aquí z me vale 5, aumento en 1 y
comparo, como 6 es mayor que 5
entonces es true, y entra sin evaluar
la otra expresión, quedando al final
z valiendo 7
Aquí z vale 5, aumento en 1 y
comparo, 6 es mayor que 5, pero el
operador me dice que debo analizar la
otra expresión, por lo tanto aumento
en 7, 7 también es mayor que 6, entro
a la expresión, y al final z vale 8
22. Operador ^ (Xor)
El operador Xor, siempre evalúa ambos lados de
la expresión, y se caracteriza porque para que de
verdadero solo una expresión debe ser
verdadera.
true True
Ambos son verdaderos, por lo tanto el
resultado es:
xor false
23. El operador !
Cuando se usa el operador !, automáticamente lo
que hace el sistema es retornar el valor
contrario, es decir si es verdadero pone falso, y
viceversa.
24.
25. What is the result?
A. null
B. life
C. universe
D. everything
E. Compilation fails
F. An exception is thrown at runtime
26. 42 no es menor que 40, pot lo
tanto entra a evaluar la 42 no es mayor que 50, por lo
expresión despues de los : tanto entra a evaluar la
expresión de los dos puntos
Larespuesta correcta
Al final el resultado de la sentencia es
es D
“everything”
27. Y los siguientes fragamentos de código
F1. if(f1 == f2)
F2. if(f1 == f2[2][1])
F3. if(x == f2[0][0])
F4. if(f1 == f2[1,1])
F5. if(f3 == f2[2])
Qué es cierto?
A. One of them will compile, only one will be true
B. Two of them will compile, only one will be true
C. Two of them will compile, two will be true
D. Three of them will compile, only one will be true
E. Three of them will compile, exactly two will be true
F. Three of them will compile, exactly three will be true
28. De enunciado anterior podemos concluir
De la opción F1 se puede decir que la sentencia
arroja un error de compilación, porque una variable
no se puede comparar con un array.
De la función F2 se puede concluir que compila la
sentencia, pero los valores 2.3 y 2.7 no son iguales,
da falso.
De la función F3 se puede decir que la sentencia
compila, y que al comparar el valor de x con la
primitiva se maneja boxing y da igual.
De la función F4, se dice que no compila, no se puede
acceder porque un array no se accede como f2[1,1] si
no f2[1][1].
De la función F5, se puede decir que la sentencia
compila, pero no da igual.
Por lo tanto podemos concluir que la respuesta
correcta es D
29. Y la ejecución se hace con la sentencia
java Fork live2
Cuál es el resultado?
A. test case
B. production live2
C. test case live2
D. Compilation fails
E. An exception is thrown at runtime
30. Args en la posición 1 no existe, solo
la posición 0, el sistema arroja
una excepcion, llamada
ArrayIndexOutOfBoundsException
La respuesta correcta es la E
31. What is the result?
A. 9 foo47 86foo
B. 9 foo47 4244foo
C. 9 foo425 86foo
D. 9 foo425 4244foo
E. 72 foo47 86foo
F. 72 foo47 4244foo
G. 72 foo425 86foo
H. 72 foo425 4244foo
I. Compilation fails
32. El resultado es 72 , porque el
primer carácter es un string
entonces se concadenan los
números
El resultado es foo425 , porque el
primer caracteres es un String,
entonces se concadenan los
números
El resultado 86Foo, los números se
suman, porque no hay string antes que
las variables numericas, y después se
asigna el String
El resultado es entonces la opción G
33. Completeel bloque con las palabras del
fragmento, para que el resultado de 33
34. class Incr {
public static void main(String[] args) {
Integer x = 7;
int y = 2;
x _=*_ _x_;
y__ _=* _y_;
y__ _=* _y_;
x__ _=- _y_;
System.out.println(x);
}
}
35. What is the result? (Choose all that apply.)
A. 1
B. 2
C. 4
D. 6
E. 8
F. Compilation fails
36. Antes de iniciar el proceso,
asigno el valor en 1
Index vale 1, entonces tomo el
valor 1, y después lo aumento,
tomo el valor 2 y lo aimento otra
vez, queda al final la posición
[1][2]
El resultado es 4, la respuesta correcta es la C
37. What is the result?
A. same old
B. newly new
C. Compilation fails due to multiple errors
D. Compilation fails due only to an error on line 7
E. Compilation fails due only to an error on line 8
F. Compilation fails due only to an error on line 11
G. Compilation fails due only to an error on line 13
38. La ejecución del proceso, no presenta ningún
error de compilación, la sentencia for recorre los
valores de el enum, por lo tanto la secuencia
asigna los valores a la variable d2, con M, T, W y
TH, no sigue más porque el ciclo llega a F
termina. Como son iguales impime same old, la
respuesta es A
39. Which are true? (Choose all that apply.)
A. Compilation fails
B. x will be included in the output
C. y will be included in the output
D. z will be included in the output
E. An exception is thrown at runtime
40. B = false, no es error de compilación, porque b
es un boleano, pero el resultado es falso, el
módulo de 21 y 5 es 1, y es falso también
entonces no imprime x
B1 es true, entonces entra e
imprime y
B2 es falso, porqie en la primero
pregunta le asigne a b2 falso
La compilación no falla, ni arroja excepción,
la sentencia incluye a y únicamente. La
respuesta correcta es C
41. Which two answers are true about the value of mask and the value of count
at line 10? (Choose two.)
A. mask is 0
B. mask is 1
C. mask is 2
D. mask is 10
E. mask is greater than 10
F. count is 0
G. count is greater than 0