Independentemente da simplicidade ou a complexidade de um método, você irá sempre utilizar um ou mais dos três tipos de estruturas de programação. Programar estruturas de controle do fluxo de execução, quando e em qual ordem as declarações são executadas dentro de um método. Existem três tipos de estruturas:
- Sequencial
- Condicionais
- Loops
A linguagem 4D contém declarações que controlam cada uma destas estruturas.
A estrutura seqüencial é uma estrutura simples e linear. A seqüência é uma série de declarações que 4D executa uma após a outra, do primeiro ao último. Por exemplo:
OUTPUT FORM([Pessoas];"Listar")
ALL RECORDS([Pessoas])
DISPLAY SELECTION([Pessoas])
Uma rotina de uma linha, muitas vezes usada para os métodos do objeto, é o caso mais simples de uma estrutura seqüencial. Por exemplo:
[Pessoas]Sobrenome:=Uppercase([Pessoas]Sobrenome)
Nota: O Begin SQL/End SQL keywords podem ser usadas para delimitar estruturas sequenciais para serem executadas pelo motor SQL de 4D. Para mais informações, consulte a descrição destas palavras-chave.
A estrutura de condição permite que os métodos testem uma condição e tomem caminhos alternativos, dependendo do resultado. A condição é uma expressão booleana, uma expressão que avalia TRUE ou FALSE. Uma estrutura de condição é a estrutura , que dirige o fluxo do programa ao longo de um de dois caminhos. A outra estrutura condicional é a estrutura , que dirige o fluxo do programa para um dos muitos caminhos.
Quando você escreve métodos, é muito comum encontrar que você precisa de uma sequência de instruções para repetir várias vezes. Para lidar com esta necessidade, a linguagem fornece três estruturas de loop:
Os loops são controlados de duas maneiras: ou loop até que uma condição é satisfeita, ou loop um determinado número de vezes. Cada estrutura de loop pode ser usada em qualquer sentido, mas While loops e Repeat loops são mais adequados para repetir até que uma condição é satisfeita, e For loops são mais adequados para looping um determinado número de vezes.
Nota: 4D lhe permite incorporar estruturas de programação (If/While/For/Case of/Repeat) até a "profundidade" de 512 níveis.