Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Loop infinito - Teknopedia
Loop infinito - Teknopedia
Niente fonti!
Questa voce o sezione sull'argomento programmazione non cita le fonti necessarie o quelle presenti sono insufficienti.

Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti.

In informatica, un ciclo infinito o loop infinito è una qualsiasi sequenza di istruzioni le cui condizioni implicano che si ripeta indefinitamente (infiniti cicli iterativi).

Questo tipo di algoritmo è utilizzato più comunemente nei linguaggi di programmazione a basso livello, nei linguaggi procedurali, dove il ciclo infinito permette al programma di ritornare ad una data istruzione una volta terminato il codice che lo compone.

L'utilizzo di un algoritmo che crei un loop infinito a questo scopo è però universalmente ritenuto scorretto, ritenendo che l'algoritmo possa essere sostituito e possa funzionare in maniera più efficiente grazie a dei cicli di iterazione. Nella maggior parte dei casi infatti il loop infinito è dovuto ad un errore di programmazione e non a una scelta voluta dallo sviluppatore.

Il loop infinito nei linguaggi di programmazione

[modifica | modifica wikitesto]

Ci sono diverse tecniche per la creazione di un loop infinito. Esse dipendono dai linguaggi di programmazione. Nei linguaggi a basso livello le alternative sono:

  1. Istruzione GOTO;
  2. Istruzione loop;
  3. Istruzioni di salto condizionato (J**) o incondizionato (JMP);

Esempio di loop infinito con un goto:

    ETICHETTA:
    <BLOCCO ISTRUZIONI>
    GOTO ETICHETTA

Esempio di loop infinito con un loop:

    ETICHETTA:
    MOV CX,10
    <BLOCCO ISTRUZIONI>
    LOOP ETICHETTA

Esempio di loop infinito con un salto incondizionato:

    ETICHETTA:
    <BLOCCO ISTRUZIONI>
    JMP ETICHETTA

Mentre per il goto e per il JMP si ha un funzionamento pressoché identico, ciò che accade per il loop è diverso: L'istruzione loop è una istruzione che permette l'iterazione di in frammento di codice per n volte, dove n è il valore contenuto nel registro contatore CX, il quale viene decrementato ad ogni ciclo. Se ogni volta che il ciclo viene svolto la variabile CX mi viene reinizializzata ad un valore fisso non permetto che il contenuto del registro raggiunga zero, condizione per far terminare l'iterazione.

Nella famiglia dei linguaggi c-like abbiamo la possibilità di adibire una istruzione iterativa a loop infinito. Per quanto riguarda il costrutto for, la sintassi è la seguente:

for (istruzione iniziale; condizione di iterazione sempre vera; istruzione di fine ciclo) {
    [istruzioni di iterazione]
}

Il funzionamento è il seguente:

  1. Viene eseguita l'istruzione iniziale
  2. Viene eseguito il blocco iterativo
  3. Viene eseguita l'istruzione di fine ciclo (inutile in questo caso)
  4. La condizione di iterazione è vera, viene ripetuto il ciclo.

Per quanto riguarda il costrutto while, esso specifica soltanto la condizione di iterazione, lasciando le due altre operazioni al codice. Anche in questo la condizione di iterazione deve essere sempre vera per costruire un ciclo infinito.

while (condizione sempre vera) {
    [istruzioni]
}
do {
   [istruzioni]
} while (condizione sempre vera);

Voci correlate

[modifica | modifica wikitesto]
  • Algoritmo ricorsivo
  Portale Informatica: accedi alle voci di Teknopedia che trattano di informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=Loop_infinito&oldid=131016455"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022