La toma de decisiones se utiliza para especificar la condición para evaluar una expresión en LISP.
Hay 4 tipos de declaraciones de toma de decisiones en LISP. Están
- si
- cond
- cuando
- caso
si declaración
El if es una declaración de toma de decisiones que se utiliza para verificar si la condición es correcta o incorrecta. Si la condición es correcta, irá dentro del bloque if y ejecutará las declaraciones debajo del bloque if. De lo contrario, las sentencias no se ejecutan.
Sintaxis:
(if (condition) then (statement 1).....(statement n))
Aquí, entonces hay una palabra clave opcional que se usa dentro de la instrucción if.
Ejemplo 1: Programa LISP para verificar condiciones con operadores
Lisp
;define value to 100 (setq val1 100) ;check the number is equal to 100 (if (= val1 100) (format t "equal to 100")) (terpri) ;check the number is greater than to 50 (if (> val1 50) (format t "greater than 50")) (terpri) ;check the number is less than to 150 (if (< val1 150) (format t "less than 150"))
Producción:
equal to 100 greater than 50 less than 150
Ejemplo 2:
Lisp
;define value to 230 (setq val1 230) ;check the number is equal to 100 (if (= val1 100) (format t "equal to 100")) (terpri) ;check the number is greater than to 50 (if (> val1 50) (format t "greater than 50")) (terpri) ;check the number is less than to 150 (if (< val1 250) (format t "less than 250"))
Producción:
greater than 50 less than 250
declaración condicional
El cond es una declaración de toma de decisiones que se utiliza para hacer un número n de condiciones de prueba. Comprobará todas las condiciones.
Sintaxis:
(cond (condition1 statements) (condition2 statements) (condition3 statements) ... (conditionn statements) )
Aquí,
- Las condiciones especifican diferentes condiciones: si la condición 1 no se cumple, se pasa a la siguiente condición, es decir, hasta la última condición.
- Las declaraciones especifican el trabajo realizado en función de la condición.
Nota: Ejecutará solo una instrucción.
Ejemplo 1: programa LISP para comprobar si un número es mayor que 200 o no.
Lisp
;set value1 to 500 (setq val1 500) ;check whether the val1 is greater than 200 (cond ((> val1 200) (format t "Greater than 200")) (t (format t "Less than 200")))
Producción:
Greater than 200
Ejemplo 2: Demostración con operadores
Lisp
;set value1 to 500 (setq val1 500) ;check whether the val1 is greater than 200 (cond ((> val1 200) (format t "Greater than 200")) (t (format t "Not"))) (terpri) ;check whether the val1 is equal to 500 (cond ((= val1 500) (format t "equal to 500")) (t (format t "Not"))) (terpri) ;check whether the val1 is equal to 600 (cond ((= val1 600) (format t "equal to 500")) (t (format t "Not"))) (terpri) ;check whether the val1 is greater than or equal to 400 (cond ((>= val1 400) (format t "greater than or equal to 400")) (t (format t "Not"))) (terpri) ;check whether the val1 is less than or equal to 600 (cond ((<= val1 600) (format t "less than or equal to 600")) (t (format t "Not")))
Producción:
Greater than 200 equal to 500 Not greater than or equal to 400 less than or equal to 600
cuando Declaración
El cuándo es una declaración de toma de decisiones que se utiliza para especificar las decisiones. Es similar a las declaraciones condicionales.
Sintaxis:
(when (condition) (statements) )
dónde,
- condición es una declaración de prueba utilizada para probar
- declaraciones son las acciones que dependerán de la condición
Ejemplo 1: Programa LISP para comprobar si el número es igual a 50 o no
Lisp
;set number to 50 (setq number 50) ;condition check the given number is equal to 50 (when (= number 50) ;statement (format t "Equal to 50") )
Producción:
Equal to 50
Ejemplo 2: Programa LISP para verificar el número dado con operadores de comparación
Lisp
;set number to 50 (setq number 50) ;condition check the given number is equal to 50 (when (= number 50) ;statement (format t "Equal to 50") ) (terpri) ;set number to 150 (setq number 150) ;condition check the given number is greater than or equal to 50 (when (>= number 50) ;statement (format t "greater than or Equal to 50") ) (terpri) ;set number to 10 (setq number 10) ;condition check the given number is less than or equal to 50 (when (<= number 50) ;statement (format t "less than or Equal to 50") )
Producción:
Equal to 50 greater than or Equal to 50 less than or Equal to 50
declaración del caso
Esto se usa para verificar múltiples condiciones de prueba a la vez, a diferencia de cond, siempre y cuando permita múltiples condiciones.
Sintaxis :
(case (key_value) ((key1) (statement 1 .............. statement n) ) ((key2) (statement 1 .............. statement n) ) ................ ((keyn) (statement 1 .............. statement n) )
aquí,
- key_value es el valor numérico tomado como entrada
- las claves son las diferentes condiciones para probar la condición particular especificada en las claves
Ejemplo: programa LISP para obtener el número particular cuando se da el número
Lisp
;define value to 2 (setq val1 2) ;define 5 cases from 1 to 5 (case val1 (1 (format t "you selected number 1")) (2 (format t "you selected number 2")) (3 (format t "you selected number 3")) (4 (format t "you selected number 4")) (5 (format t "you selected number 5")) )
Producción:
you selected number 2
Ejemplo: Programa LISP para realizar una operación aritmética cuando se elige una tecla en particular
Lisp
;define value1 to 10 (setq val1 10) ;define value2 to 20 (setq val2 20) ;set input to 1 (setq input 1) ;define 4 cases to perform each arithmetic operation (case input ;condition to perform addition (1 (print (+ val1 val2))) ;condition to perform subtraction (2 (print (- val1 val2))) ;condition to perform multiplication (3 (print (* val1 val2))) ;condition to perform division (4 (print (/ val1 val2))) )
Producción:
30
Establecer entrada en 3
Lisp
;define value1 to 10 (setq val1 10) ;define value2 to 20 (setq val2 20) ;set input to 3 (setq input 3) ;define 4 cases to perform each arithmetic operation (case input ;condition to perform addition (1 (print (+ val1 val2))) ;condition to perform subtraction (2 (print (- val1 val2))) ;condition to perform multiplication (3 (print (* val1 val2))) ;condition to perform division (4 (print (/ val1 val2))) )
Producción:
200
Publicación traducida automáticamente
Artículo escrito por saisravanprojects y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA