Estamos trabajando arduamente para mejorarlo.
Si desea colaborar, puede editarlo aquí: edit here (md).
Booleano
En los capítulos anteriores se han analizado en profundidad los objetos Verdadero o Falso. Hemos utilizado estos objetos, por ejemplo, para ejecutar tareas en función de ciertas condiciones. Verdadero y Falso se basan en el álgebra de Boole. A diferencia de la mayoría de los lenguajes de programación más populares en el momento de escribir este artículo, XOScript proporciona solo un único objeto Verdadero y un único objeto Falso. Para aclarar, cada vez que escribe Verdadero no implica que se haya creado un nuevo objeto. En cambio, siempre utiliza una referencia. Esto significa que cuando escribe lo siguiente:
>> x := Verdadero.
La x se refiere al objeto Verdadero. El código condicional y los bucles también verifican esta referencia. En XOScript, el significado de Verdadero y Falso no es fijo. De hecho, un programa XOScript se confunde bastante con una declaración como esta:
Verdadero := Falso.
El resultado de tales acciones no está definido, pero sigue siendo una acción válida y, por lo tanto, está permitida formalmente. Además, hay un objeto Decision, que es el objeto raíz de Verdadero y Falso, ya que ambos son derivados del objeto raíz. Sin embargo, el objeto Decision en sí no proporciona ninguna aplicación práctica. Por medio de los objetos Verdadero y Falso, puede ejecutar partes de su programa bajo condiciones específicas:
>> precio := Número entre: 0 y: 20.
>> presupuesto := 10.
precio > presupuesto verdadero: {
Salida escribir: ['demasiado caro'].
}, falso: {
Salida escribir: ['¡vendido!'].
}.
Para facilitar la lectura, en lugar de falso: también puede utilizar el mensaje otro:. Esto es básicamente lo mismo , porque el mensaje otro: es un sinónimo de falso:. (otro , hace referencia a - otro caso - ) Por lo tanto, el siguiente fragmento muestra exactamente el mismo procedimiento:
>> precio := Número entre: 0 y: 20.
>> presupuesto := 10.
precio > presupuesto verdadero: {
Salida escribir: ['demasiado caro'].
}, otro: {
Salida escribir: ['¡vendido!'].
}.
Depende totalmente de usted cuál de las dos variaciones prefiere utilizar para facilitar la lectura. Los objetos de decisión también se pueden utilizar para combinar diferentes condiciones. Por ejemplo, una tarea se puede ejecutar cuando dos cosas producen un objeto Verdadero. O bien, si se cumple una de dos o incluso más condiciones, como se ilustra en el siguiente ejemplo:
>> azúcar := Verdadero.
>> leche := Falso.
>> x := azúcar y: leche.
En el fragmento anterior se crean dos nuevos objetos, que son azúcar y leche. El objeto azúcar es un objeto Verdadero mientras que leche es un objeto Falso. Ahora, cuando quieres saber si alguien prefiere tanto leche como azúcar en su café o té, envías el mensaje y: a un objeto y envías el otro objeto junto con él como argumento. La respuesta a y: será Falso, porque y: solo responde con Verdadero cuando el objeto en sí es afirmativo, así como el argumento. En cualquier otro caso, devolverá Falso. Entonces, en este caso x es igual a Falso. Además del mensaje y:, también puedes usar o: , de la siguiente manera:
>> azúcar := Verdadero.
>> leche := Falso.
>> x := azúcar o: leche.
En este caso, el azúcar, coincidentemente el primer objeto indicado, responderá Verdadero. El objeto Verdadero al que se refiere la variable azúcar, en realidad siempre responde a la pregunta o: con Verdadero si efectivamente el objeto en sí es afirmativo o efectivamente el objeto en el argumento es afirmativo, o si ambos son Verdadero. En caso de que ninguno de los objetos sea Verdadero, entonces la respuesta será Falso. Al usar el mensaje o: puede esperar Verdadero si está rodeado por dos objetos Falso.
>> azúcar := Falso.
>> leche := Falso.
>> x := azúcar o: leche.
Con el mensaje no se invierte un objeto de decisión, es decir, un Verdadero se convierte en Falso
>> azúcar := Falso no.
>> leche := Falso no.
>> x := azúcar y: leche.
Entonces, en este caso x es Verdadero, porque tanto azúcar como leche son Falso no, es decir, no no, por lo tanto Verdadero. Con entonces:caso-contrario: puedes seleccionar, por medio de un objeto Verdadero o Falso, un objeto diferente de un par de objetos. De la siguiente manera:
>> azúcar := Verdadero.
>> x :=
azúcar
entonces: 1 cuchara caso-contrario: Nulo.
En el fragmento anterior x será igual a 1 cuchara. Cuando el mensaje de recepción es Verdadero, se seleccionará el primer objeto y si no, se seleccionará el segundo. También puedes convertir un Verdadero o un Falso en un número enviando el número del mensaje. El objeto Verdadero responderá con 1 y Falso responderá con 0. Obviamente, también puedes comparar objetos Verdadero y Falso entre sí:
>> x := (Verdadero !=: Falso).
>> y := (Verdadero = Falso).
En este caso x es igual a Verdadero e y es igual a Falso. Los mensajes continuar y salir se pueden utilizar dentro de un bucle. Por lo tanto, cuando envía salir dentro de un bucle a un objeto Verdadero, el bucle finalizará desde ese punto. El programa continuará en la primera instrucción después del bucle. El mensaje continuar está relacionado con salir, sin embargo, en lugar de finalizar todo el bucle, solo finalizará la iteración actual. La parte restante de la ronda actual se omite y se inicia la siguiente ronda del bucle. A continuación, se muestran algunos ejemplos:
{ :i
Salida escribir: i, detener.
(i > 9) salir.
} * 20.
Este fragmento de código en particular ilustra el efecto de la interrupción del mensaje. Muestra una pequeña lista de los números del 1 al 10; sin embargo, tan pronto como el número en i supera diez, el bucle se interrumpe en ese punto.
{ :i
(i > 10 and: i < 15) continuar.
Salida escribir: i, detener.
} * 20.
Este fragmento de código produce una pequeña lista de 1 a 10 seguida de 15 a 20. Los números entre 10 y 15 se omiten. Esto se debe a que para este intervalo la condición ( i > 10 y: i < 15 ) da como resultado Verdadero, por lo que el mensaje continuar se envía a este objeto Verdadero. Esto significa que se omite la parte restante del bucle y comienza la siguiente iteración. Los mensajes continuar y salir son ignorados por el objeto Falso. Finalmente, el mensaje texto le permite crear una representación textual de un objeto Verdadero o Falso.