Entrambi i frammenti di codice stanno facendo troppo lavoro. Puoi sostituirli con int sum = 40;
(infatti, se hai dato quei frammenti di codice a un compilatore, questo è fondamentalmente ciò che farebbe il compilatore). C'è un trucco famoso per riassumere i primi n interi che ho usato per farlo nella mia testa, ma se non conoscevi il trucco e non avevi a portata di mano un calcolatore, potresti lavorare con carta e penna in circa la stessa quantità di tempo necessario per digitare quel codice. Quindi il problema, come affermato, non è qualcosa per cui dovresti scrivere un programma.
Naturalmente, non stai chiedendo solo un esempio di questo problema. Che problema stai cercando di risolvere? La domanda va oltre un po ', quindi suppongo che tu sia (a) andando a cercare qualcosa che riassume tutti gli interi consecutivi su un intervallo tranne uno specificato, o (b) che stai andando a sommare tutti gli interi consecutivi in un intervallo, ad eccezione di un intervallo nel mezzo.
Se vuoi (a), puoi semplicemente sottrarre il numero specificato dall'intervallo. Se si desidera (b), è possibile suddividere la vasta gamma in una metà inferiore e una metà superiore e gestirne separatamente ciascuna. Quindi, in entrambi i casi, vogliamo qualcosa che possa riassumere un intervallo di numeri interi.
Se conosci la famosa formula per sommare i primi n interi (n * (n + 1) / 2), e sai come funziona, non è difficile trovare una formula per un intervallo ( (alto-basso + 1) * (top + bottom) / 2). Altrimenti, c'è un modo ovvio e diretto per farlo con i loop.
Se scriviamo una funzione che lo fa (con entrambi i metodi), possiamo riscrivere il problema originale come sum_range(0,9) - 5
o sum_range(0,4) + sum_range(6,9)
. Si scopre che non avevamo bisogno di ifs o continua, e, a seconda di come l'abbiamo scritto, forse no loop for.
Se la tua domanda riguarda veramente quale parola chiave usare quando è annidata in un costrutto usando una parola chiave specifica che è annidata in un altro costrutto usando un'altra parola chiave specifica, allora non penso che la tua domanda abbia davvero una risposta, e che provi a capire come programmare osservando quali parole chiave annidano all'interno delle quali altre parole chiave non saranno mai utili.
(Per chi fosse interessato, la formula funziona così: diciamo che stiamo cercando di sommare tutti gli interi da 1 a 100. 1 + 100 = 101, 2 + 99 = 101, 3 + 98 = 101, e così via on, quindi potremmo semplicemente moltiplicare 101 per il numero di coppie, e il numero di coppie è il numero di numeri aggiunti / 2. In questo caso, top = 100, bottom = 1, top + bottom = 101, e il numero di coppie è (top-bottom + 1) / 2 = n / 2 = 50.)