Come configurare smartphone e PC. Portale informativo

Fai i cicli while e foreach.

I cicli vengono utilizzati per scorrere più e più volte pezzi di codice. La capacità di ripetere determinati frammenti di codice è uno dei compiti principali e allo stesso tempo importanti che un programmatore deve risolvere. La maggior parte dei programmi o dei siti utilizza i loop, ad esempio, per visualizzare informazioni su notizie o annunci. Cioè, in tali attività, è necessario eseguire costantemente operazioni di lettura e scrittura e, per non duplicare lo stesso codice, i loop vengono in soccorso. I loop sono abbastanza semplici da dichiarare nel codice, ma svolgono attività complesse con solo una semplice ripetizione.

Per iniziare a conoscere i loop, assicurati di avere una buona comprensione del concetto nel linguaggio di programmazione C. Perché sarà vitale nell'uso dei cicli, perché nei cicli così come ci sono espressioni condizionali. Ci sono tre tipi di cicli nel linguaggio C: for, while, do while. Ognuno di loro ha le sue applicazioni specifiche. Sono tutti descritti di seguito.

Il ciclo più comunemente usato è il ciclo for, la sua struttura è mostrata di seguito:

For (/ * inizializzazione di una variabile; condizione; modifica del valore di una variabile * /) (// corpo del ciclo (ecco il codice che verrà ripetuto))

L'inizializzazione delle variabili consente di dichiarare una variabile e assegnarle un valore oppure di assegnare un valore a una variabile esistente. In secondo luogo, il valore di questa variabile indica al programma se la condizione del ciclo è vera o falsa. E finché la condizione del ciclo è vera, il ciclo deve continuare a ripetersi. La variabile di controllo deve essere modificata in qualche modo, altrimenti il ​​ciclo sarà infinito, ad esempio puoi aggiornarlo in questo modo: i ++, i = i + 2 o anche così i = casuale (5). Nota che ogni sezione nell'intestazione del ciclo è separata da un punto e virgola, che è molto importante. Si noti inoltre che ciascuna delle sezioni può essere vuota, anche se i punti e virgola dovrebbero essere ancora presenti. Se la condizione non è vuota, viene valutata come vera e il ciclo verrà eseguito finché qualcosa non renderà falsa la condizione del ciclo. Diamo un'occhiata a un semplice esempio di utilizzo di un ciclo for.

#includere int main() (int i; / * Il ciclo durerà finché i< 10, при этом после каждой итерации переменная i будет инкрементироваться(увеличиваться на 1)*/ for (i = 0; i < 10; i++) { /* Имейте ввиду что условие проверяется перед каждым повторением, то есть работа цикла остановится когда переменная i будет равна 10*/ printf("%d\n", i); } getchar(); }

In realtà, il risultato del programma:

0 1 2 3 4 5 6 7 8 9

Questo programma è un esempio molto semplice di utilizzo di un ciclo. alla variabile i viene assegnato zero, e mentre i è minore di 10, sullo schermo vengono stampati i valori della variabile i, quindi viene aggiunto uno alla variabile i e tutto si ripete ancora fino a quando la condizione diventa falsa. Tieni presente che il valore della variabile i viene incrementato dopo che il codice nel corpo del ciclo viene eseguito per la prima volta.

Il ciclo while è un ciclo molto semplice, ecco la sua struttura:

Mentre (/ * condizione * /) (// corpo del ciclo - ecco il codice che deve essere ripetuto)

Il corpo del ciclo inizia l'esecuzione se la condizione del ciclo è vera. La condizione è un'espressione booleana come x == 1 o x! = 7 (x non è uguale a 7). Cioè, la condizione può essere assolutamente qualsiasi cosa, qualsiasi combinazione di espressioni logiche. Ecco un esempio di una condizione composta - x == 3 || x> 10, questa condizione sarà vera se x è uguale a tre o x è maggiore di 10. Nota che pur disponendo di una sezione di inizializzazione o di una sezione di modifica variabile controllata, quindi prima di utilizzare questo ciclo, devi prima dichiarare una variabile che essere controllato nel ciclo delle condizioni e modificare il valore di questa variabile nel corpo del ciclo. In realtà, diamo un'occhiata a un semplice esempio usando un ciclo while:

#includere int main() (int var = 0; / * assicurati di dichiarare prima la variabile * / while (var< 10) { /* пока значение переменной var меньше 10 */ printf("%d\n", var); var++; /* обновляем значение в переменной var(если этого не делать, то условие цикла всегда будет истинным, тогда цикл будет - бесконечным) */ } getchar(); }

Quindi abbiamo esaminato un altro esempio di utilizzo dei loop e, come puoi vedere, non c'è nulla di complicato nemmeno in questo esempio. Immagina solo che il ciclo inizi sempre a ripetere il codice che si trova nel corpo del ciclo. Non appena viene eseguita l'ultima istruzione nel corpo del ciclo, la condizione del ciclo viene verificata. Se la condizione è ancora vera, il ciclo continua a essere eseguito ulteriormente, e se la condizione è falsa, il ciclo viene chiuso.

C'è un altro tipo di loop: do while. Questo ciclo è utile quando è necessario eseguire il codice almeno una volta. Consideriamo la sua struttura:

Esegui (// corpo del ciclo) while (/ * condizione * /);

La struttura è molto semplice, come puoi vedere, la condizione è alla fine del ciclo e, di conseguenza, la condizione verrà verificata dopo l'esecuzione del codice nel corpo del ciclo. Nota che la condizione è verificata alla fine del ciclo, non all'inizio, quindi il blocco di codice nel corpo del ciclo verrà eseguito almeno una volta. Se la condizione è vera, il ciclo torna all'inizio e lo esegue di nuovo. Un ciclo do while è quasi uguale a un ciclo while, tranne per il fatto che il corpo del ciclo è garantito per essere eseguito almeno una volta. Il ciclo while verifica prima la condizione, quindi esegue il blocco di codice nel corpo, ovviamente, se la condizione è vera, mentre do while esegue prima il codice nel corpo del ciclo, quindi controlla la condizione e se è vero, poi continua a funzionare... Di seguito è mostrato un esempio di come funziona il ciclo do while:

#includere int main() (int i = 0; do (/ * Stampa un messaggio ed esce * / printf ("Ciao! Sto eseguendo un ciclo do while \ n");) while (i! = 0); getchar (); )

Presta attenzione al punto e virgola alla fine del ciclo, dovresti sempre usare questo punto e virgola come nell'esempio sopra. Molto spesso questo punto e virgola viene omesso, causando un errore di compilazione. Solo questo ciclo termina con un punto e virgola, il resto dei cicli non ha nulla alla fine, tranne la parentesi chiusa. Nota che nell'esempio sopra, questo ciclo verrà eseguito una volta, perché il messaggio viene stampato prima e poi viene verificata la condizione del ciclo.

Cicli for e while

Ci sono quattro diversi tipi di cicli in C# (for, while, do... while e foreach) che consentono di ripetere un blocco di codice fino a quando non viene soddisfatta una certa condizione. In questo articolo, ti presenteremo i cicli for e while.

Per il ciclo

Il ciclo for in C# fornisce un meccanismo di iterazione in cui viene verificata una condizione specifica prima di eseguire ogni iterazione. La sintassi per questa affermazione è mostrata di seguito:

for (inizializzatore; condizione; iteratore) operatore/i

inizializzatore

è un'espressione che viene valutata prima della prima esecuzione del corpo del ciclo (di solito inizializzando una variabile locale come contatore del ciclo). L'inizializzazione è solitamente rappresentata da un operatore di assegnazione che imposta il valore iniziale di una variabile che funge da contatore e controlla il ciclo;

condizione

è un'espressione che viene verificata prima di ogni nuova iterazione del ciclo (deve restituire true per l'esecuzione della successiva iterazione);

iteratore

un'espressione che viene valutata dopo ogni iterazione (generalmente incrementando un contatore di loop).

Notare che queste tre parti principali dell'istruzione for loop devono essere separate da punto e virgola. Il ciclo for continuerà a essere eseguito finché il test della condizione restituisce un risultato vero. Non appena questo test fornisce un risultato falso, il ciclo terminerà e l'esecuzione del programma continuerà dall'istruzione che segue il ciclo for.

Vale la pena notare che un ciclo for è ottimo per eseguire nuovamente un'istruzione o un blocco di istruzioni per un numero noto di volte. Vediamo l'uso pratico del ciclo for con il seguente esempio:

Utilizzo del sistema; utilizzando System.Collections.Generic; utilizzando System.Linq; utilizzando System.Text; namespace ConsoleApplication1 (class Program (// Questo metodo restituisce la tabella di moltiplicazione // in bxb dimension static void tab (byte b) (Console.WriteLine ("Tabella di moltiplicazione (0) x (0) \ n", b); // Questo ciclo itera sulle righe for (int i = 1; i

Mentre il ciclo

Come per, mentreè anche un ciclo di pre-controllo. La sintassi è la stessa, ma i cicli while includono solo un'espressione:

operatore(i) while (condizione);

dove operatoreè un singolo operatore o un blocco di operatori, e condizione denota una specifica condizione di controllo del ciclo e può essere qualsiasi espressione booleana. In questo ciclo, l'istruzione viene eseguita finché la condizione è vera. Non appena la condizione diventa falsa, il controllo del programma viene trasferito alla riga di codice immediatamente dopo il ciclo.

Come nel ciclo for, il ciclo while verifica l'espressione condizionale specificata all'inizio del ciclo. Ciò significa che il codice nel corpo del ciclo potrebbe non essere eseguito affatto ed elimina anche la necessità di eseguire un controllo separato prima del ciclo stesso.

Operatore di loop per generalizza la ben nota costruzione di un ciclo come una progressione aritmetica. La sua sintassi è:

per(inizializzatori; condizione; lista_espressioni) operatore

L'operatore dopo la parentesi chiusa specifica il corpo del ciclo. Nella maggior parte dei casi, il corpo del ciclo è un blocco. Gli inizializzatori impostano il valore iniziale di una o più variabili, spesso chiamate contatori o semplicemente variabili di ciclo. La condizione imposta la condizione per la fine del ciclo, l'espressione corrispondente deve ricevere un valore durante il calcolo vero o falso. Un elenco di espressioni separate da virgole mostra come cambiano i contatori del ciclo a ogni passaggio dell'esecuzione. Se la condizione del ciclo è vera, viene eseguito il corpo del ciclo, quindi i valori dei contatori vengono modificati e la condizione viene nuovamente verificata. Non appena la condizione diventa falsa, il ciclo termina il suo lavoro. In una situazione normale, il corpo del ciclo viene eseguito un numero finito di volte. I contatori di loop sono spesso dichiarati direttamente nell'inizializzatore e, di conseguenza, sono variabili localizzate nel loop.

Nei casi in cui è possibile terminare prematuramente il ciclo utilizzando uno degli operatori di ramo, i contatori vengono dichiarati prima del ciclo, il che consente di analizzarne i valori all'uscita dal ciclo.

Ad esempio, considera il problema classico: una riga di testo è un palindromo. Per risolverlo, il ciclo per si adatta nel migliore dei modi.

Qui vengono utilizzati due contatori: uno crescente e l'altro decrescente. Ecco il testo della relativa procedura:

/// < riepilogo>
/// Definizione di palindromi. Dimostrazione del cicloper
///
/// testo
/// < ritorna> vero- se il testo è palindromo
public bool Palindrom (string str){
per (int io= 0, J= str.Lunghezza- 1; io< J; io++, j--)
se (str [i]!= str [j]) ritorno (falso);
Restituzione (vero);
} // palindromo

5.6.2. Mentre i loop

Ciclo mentre(espressione)è un tipo universale di ciclo che è incluso in tutti i linguaggi di programmazione. Il corpo del ciclo viene eseguito finché l'espressione rimane vera mentre. In C#, questo tipo di ciclo ha due modifiche: con un controllo delle condizioni all'inizio e alla fine del ciclo. La prima modifica ha la seguente sintassi:

while (espressione) istruzione

Questa modifica corrisponde a un ciclo con una precondizione. Il corpo di un tale ciclo potrebbe non essere mai eseguito. In una situazione normale, ogni esecuzione del corpo del ciclo è un altro passo verso la fine del ciclo.

Un ciclo che verifica la condizione di terminazione alla fine corrisponde a un ciclo con una postcondizione. Il corpo di un tale ciclo viene eseguito almeno una volta. Ecco la sintassi per questa modifica:

fare
operatore
mentre (espressione);

Facciamo un esempio in cui sono coinvolte entrambe le modifiche del ciclo mentre. Nel ciclo esterno, il controllo viene eseguito alla fine e nel ciclo interno, all'inizio. Il loop esterno è un tipico esempio di organizzazione di programmi educativi, quando un determinato problema viene ripetutamente risolto in un dialogo con l'utente. Ad ogni passaggio, l'utente inserisce nuovi dati, risolve il problema e analizza i dati ricevuti. È in suo potere, se continuare o meno i calcoli, ma almeno una volta deve risolvere il problema. Anello interno farementre viene utilizzato per risolvere il problema già noto con i palindromi. Ecco il testo della relativa procedura:

/// < riepilogo>
/// Due cicli: con un segno di spunta alla fine e all'inizio.
/// Il ciclo esterno è un esempio di un problema che può essere risolto ripetutamente.
/// La fine del ciclo viene determinata nel dialogo con l'utente.
///
ciclo vuoto pubblico (){
// Inizioprocedurerisposta stringa, testo;
fare{
// inizio del ciclo esterno
Console. Linea di scrittura("Inserisci una parola");
testo= Console.ReadLine ();
int io= 0, J= testo.Lunghezza- 1;
mentre io< J)&& (testo [io]== testo [j])) (
// interniciclo
io++; J--;
}
se (testo [i]== testo [j]) Console.WriteLine (testo+ " - essopalindromo!");
else Console.WriteLine (testo+ " - essononpalindromo!");
Console.WriteLine ("Continuiamo? (si No) ");
Rispondere= Console.ReadLine ();
} mentre (risposta== "sì");// la fineesternociclo
} // Ciclo continuo

5.6.3. Per ogni ciclo

Un nuovo tipo di ciclo, non ereditato dal C++, è il ciclo per ciascuno, conveniente quando si lavora con array, raccolte e altri contenitori di dati simili. La sua sintassi è:

per ciascuno(identificatore di tipoincontainer) operatore

Il ciclo funziona in piena conformità con il suo nome: il corpo del ciclo viene eseguito per ogni elemento nel contenitore. Il tipo dell'identificatore deve corrispondere al tipo degli elementi archiviati nel contenitore di dati. Si assume inoltre che gli elementi del contenitore (array, collection) siano ordinati. Ad ogni passo del ciclo, l'identificatore che specifica l'elemento corrente del contenitore riceve il valore dell'elemento successivo secondo l'ordine impostato sugli elementi del contenitore. Il corpo del ciclo viene eseguito con questo elemento corrente - viene eseguito tante volte quanti sono gli elementi nel contenitore. Il ciclo termina quando tutti gli elementi del contenitore sono stati completamente enumerati. Grave svantaggio dei cicli per ciascuno in C# è che il ciclo funziona solo per la lettura, ma non per la scrittura di elementi. Quindi devi riempire il contenitore con elementi usando altri operatori di ciclo.

L'esempio seguente mostra l'utilizzo di un array 3D. L'array viene creato usando loop come per, e quando si trova la somma dei suoi elementi, i valori minimo e massimo, si usa il ciclo per ciascuno:

/// < riepilogo>
/// Dimostrazione del cicloper ciascuno.
/// Calcola la somma, gli elementi massimo e minimo
/// un array tridimensionale pieno di numeri casuali.
///
vuoto pubblico SumMinMax (){
int [,] arr3d= nuovo int;
rnd . casuale= nuovo Casuale ();
per (int io= 0; io< 10; io++)
per (int j= 0; J< 10; j++)
per (int k= 0; K< 10; k++)
arr3d= rnd.Next (100);
lunga somma= 0;
int min= arr3d,max= arr3d;
foreach (elemento int in arr3d){
somma+= elemento;
se (elemento> max) max= elemento;
altrimenti se (elemento< min) min= elemento;
}
Console.WriteLine ("somma"= {0}, min= {1}, max= {2}", somma, minimo, massimo);
} // SommaMinMax

Esegui cicli while e foreach

Il ciclo del fare. ... ... mentre

Fai ... durante il ciclo in C#, questa è una versione post-condizionale di while. Ciò significa che la condizione del ciclo viene verificata dopo l'esecuzione del corpo del ciclo. Pertanto, i cicli do ... while sono utili in situazioni in cui un blocco di istruzioni deve essere eseguito almeno una volta. Quella che segue è la forma generale dell'istruzione del ciclo do-while:

do (dichiarazioni;) while (condizione);

Se è presente una sola istruzione, le parentesi graffe sono facoltative in questa notazione. Tuttavia, vengono spesso utilizzati per rendere più leggibile il costrutto do-while e da non confondere con il costrutto ciclo while. Il ciclo do-while viene eseguito finché l'espressione condizionale è vera. Un esempio di utilizzo di un ciclo do-while è il seguente programma che calcola il fattoriale di un numero:

Utilizzo del sistema; utilizzando System.Collections.Generic; utilizzando System.Linq; utilizzando System.Text; namespace ConsoleApplication1 (class Program (static void Main (string args) (try (// Calcola il fattoriale di int i, result = 1, num = 1; Console.WriteLine ("Inserisci un numero:"); i = int.Parse (Console .ReadLine ()); Console.Write ("\ n \ nFactorial (0) =", i); do (risultato * = num; num ++;) while (num

Per ogni ciclo

Per ogni ciclo serve per l'accesso ciclico agli elementi di una collezione, che è un gruppo di oggetti. C # definisce diversi tipi di raccolte, ognuna delle quali è un array. La seguente è la forma generale dell'istruzione ciclo foreach:

operatore foreach (digitare loop_variable_name nella raccolta);

Qui digita nome_variabile_ciclo denota il tipo e il nome di una variabile di controllo del ciclo che ottiene il valore dell'elemento successivo nella raccolta a ogni passaggio del ciclo foreach. Una raccolta denota una raccolta interrogata ciclicamente, che di seguito è una matrice. Pertanto, il tipo della variabile di ciclo deve corrispondere al tipo dell'elemento dell'array. Inoltre, il tipo può essere indicato con la parola chiave var. In questo caso, il compilatore determina il tipo della variabile di ciclo in base al tipo dell'elemento dell'array. Questo può essere utile per gestire determinati tipi di query. Ma, di regola, il tipo viene specificato in modo esplicito.

L'istruzione ciclo foreach funziona come segue. All'avvio del ciclo, il primo elemento dell'array viene selezionato e assegnato alla variabile del ciclo. Ad ogni passaggio successivo dell'iterazione, l'elemento successivo dell'array viene selezionato e memorizzato nella variabile di ciclo. Il ciclo termina quando tutti gli elementi dell'array sono selezionati.

Il ciclo foreach ti consente di scorrere ogni elemento della raccolta (un oggetto che rappresenta un elenco di altri oggetti). Formalmente, affinché qualcosa possa essere considerato una raccolta, deve supportare l'interfaccia IEnumerable. Esempi di raccolte includono array C#, classi di raccolte dallo spazio dei nomi System.Collection e classi di raccolte personalizzate.

Gigabyte offrirà kit basati sulla scheda Z390 Aorus Xtreme WaterForce e sul Core i9-9900K overcloccato. Gigabyte lancerà presto kit dalla scheda madre Z390 Aorus Xtreme WaterForce e dal processore Intel Core i9-9900K overcloccato a 5,1 GHz (8 core/16 thread, 3,6/5 GHz). Questi kit sono principalmente

Samsung Galaxy A90 è stato testato per la prima volta nel benchmark Geekbench. Il 10 aprile Samsung terrà la sua prossima presentazione, dove presenterà sicuramente una serie di smartphone di fascia media. Tra questi dovrebbe esserci il Samsung Galaxy A90, che è stato letteralmente appena testato in

Il sito web di Slahsleaks, che spesso carica foto esclusive di nuovi dispositivi mobili e accessori per loro, ha pubblicato una foto in diretta del pannello frontale dello smartphone Nokia 8.1 Plus. Lo smartphone ha ricevuto cornici molto strette attorno al perimetro, una cornice leggermente più ampia sotto il display,

Un team internazionale di scienziati ha dimostrato un nuovo modo di convertire la luce emessa da un laser convenzionale in quella che è nota come luce quantistica. Una caratteristica di tale luce sono le identiche proprietà quantistiche dei suoi fotoni, che sono evidenziate da

La maggior parte dei dispositivi moderni, a partire dai più semplici orologi elettronici, utilizza componenti speciali chiamati generatori di clock, i quali, quando viene loro applicato un segnale appropriato, iniziano a produrre oscillazioni con una frequenza strettamente specificata. Di più

Gli astronomi hanno scoperto 83 nuovi buchi neri supermassicci, la cui età è quasi uguale all'età della parte di universo disponibile per lo studio. L'identificazione di questi buchi neri e la determinazione dei loro parametri è stata effettuata analizzando la loro luminosità e lo spettro di emissione. Essi

Google ha annunciato una nuova funzionalità per l'invio di email a Gmail. Ora la loro spedizione può essere programmata in un momento conveniente. Per pianificare una lettera, è necessario fare clic sulla freccia accanto al pulsante "Invia" e selezionare l'ora e la data di invio desiderate, scrive Chronicle.info con un link a

IFixit ha studiato il design dell'iPad mini di nuova generazione, presentato ufficialmente da Apple il mese scorso. Il dispositivo, ricordiamo, è dotato di un display Retina che misura 7,9 pollici di diagonale. La risoluzione è 2048 × 1536 pixel,

I televisori e i display Vizio riceveranno il supporto AirPlay. Il produttore statunitense di elettronica di consumo Vizio aveva precedentemente annunciato il supporto per AirPlay 2 e l'app Home. Ora si è saputo che gli specialisti dell'azienda stanno lavorando sull'applicazione SmartCast compatibile con AirPlay.

BIOSTAR, il produttore leader mondiale di schede madri, schede grafiche e dispositivi di archiviazione, ha presentato la scheda madre A68MHE per il mainstream. BIOSTAR A68MHE è alimentato dal chipset AMD A68H, che supporta processori e RAM AMD FM2 + Athlon ™ / serie A-

Principali articoli correlati