Tcl - Decyzje
Struktury decyzyjne wymagają, aby programista określił jeden lub więcej warunków, które mają być ocenione lub przetestowane przez program, wraz z instrukcją lub instrukcjami, które mają być wykonane, jeśli warunek zostanie określony jako prawdziwy, i opcjonalnie inne instrukcje do wykonania, jeśli warunek jest zdeterminowany, aby był fałszywy.
Poniżej przedstawiono ogólną formę typowej struktury podejmowania decyzji występującej w większości języków programowania -
                Język Tcl używa wewnętrznie polecenia expr i dlatego nie jest wymagane, abyśmy jawnie używali instrukcji expr.
Język TCL zapewnia następujące rodzaje oświadczeń decyzyjnych -
| Sr.No. | Oświadczenie i opis | 
|---|---|
| 1 | jeśli oświadczenie  Instrukcja „if” składa się z wyrażenia logicznego, po którym następuje co najmniej jedna instrukcja.  |  
      
| 2 | if ... else oświadczenie  Po instrukcji „if” może następować opcjonalna instrukcja „else”, która jest wykonywana, gdy wyrażenie logiczne ma wartość fałsz.  |  
      
| 3 | zagnieżdżone instrukcje if  Możesz użyć jednej instrukcji „if” lub „else if” wewnątrz innych instrukcji „if” lub „else if”.  |  
      
| 4 | instrukcja przełączania  ZA switch Instrukcja umożliwia testowanie zmiennej pod kątem równości względem listy wartości.  |  
      
| 5 | zagnieżdżone instrukcje przełączające  Możesz użyć jednego switch oświadczenie wewnątrz innego switch sprawozdania).  |  
      
The? : Operator
Omówiliśmy conditional operator ? : w poprzednim rozdziale, który można zastąpić if...elsesprawozdania. Ma następującą ogólną postać -
Exp1 ? Exp2 : Exp3; 
    Gdzie Exp1, Exp2 i Exp3 to wyrażenia. Zwróć uwagę na użycie i położenie okrężnicy.
Wartość a '? wyrażenie 'jest określane w następujący sposób: Exp1 jest oceniane. Jeśli to prawda, to Exp2 jest szacowane i staje się wartością całego '? wyrażenie.' Jeśli Exp1 ma wartość false, to Exp3 jest oceniane, a jego wartość staje się wartością wyrażenia. Przykład jest pokazany poniżej.
#!/usr/bin/tclsh
set a 10;
set b [expr $a == 1 ? 20: 30] puts "Value of b is $b\n"
set b [expr $a == 10 ? 20: 30] puts "Value of b is $b\n" 
    Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -
Value of b is 30
Value of b is 20