Instrução BREAK em C++
Se você fez direitinho e na ordem, o curso C++ Progressivo, já deve conhecer este comando break, pois usamos no tutorial:Switch, case e break
Lá, quando esse comando era executado, ele simplesmente encerrava o teste condicional SWITCH.
Aqui, ele faz a mesma coisa, mas no caso ele serve para interromper um laço, a qualquer instante.
No código abaixo, o C++ fica pedindo um número ao usuário e calculando seu quadrado.
Se em algum momento o usuário digitar 0, o IF se torna verdadeiro e o comando break é acionado, interrompendo sumariamente o laço WHILE:
#include <iostream> using namespace std; int main() { int num; while(true){ cout<<"Numero: "; cin >>num; if(num==0) break; cout<<num*num<<endl; } return 0; }Ou seja, quando queremos, em algum momento, interromper um laço, usamos a instrução BREAK, que geralmente vem dentro de um teste condicional, dentro de algum looping.
Se tivermos um laço dentro de outro, e dentro deste estiver uma instrução BREAK, somente esse laço mais interno que será interrompido, ok?
O seguinte código fica pedindo notas para o usuário, para calcular a média.
Caso o usuário digite uma nota que não é válida (abaixo de 0 ou acima de 10), o laço WHILE é encerrado e fornecemos a média dos números digitados dessa nota inválida:
#include <iostream> using namespace std; int main() { int aux=0; float num, sum=0; while(true){ cout<<"Nota: "; cin >> num; if(num<0 || num>10) break; sum+=num; aux++; } cout<<"Média: "<<(sum/aux)<<endl; return 0; }Note que garantimos que os números fornecidos sejam corretos (entre 0 e 10), pois caso contrário o laço é encerrado.
O comando CONTINUE em C++
Se o BREAK encerra o teste condicional ou estrutura de controle, o comando CONTINUE encerra apenas a iteração.Ou seja, pula pra próxima iteração.
Vamos somar todos os números de 1 até 100, exceto os múltiplos de 4:
#include <iostream> using namespace std; int main() { int num, sum=0; for(num=1; num<=10 ; num++){ if(num%4==0) continue; sum += num; } cout<<"Total: "<<sum<<endl; return 0; }Dentro do laço verificamos se o número é divisível por 4, se for, essa iteração é pulada, não rodando o código seguinte ao CONTINUE, vai pra próxima iteração normalmente.
Assim como o BREAK, o comando CONTINUE geralmente ocorre sob determinado teste condicional, quando você quer excluir uma iteração específica do looping.
Vamos refazer o código que calcula a média.
Agora, ao invés de parar a execução, ele pula a iteração, não somando aquela nota inválida na soma:
#include <iostream> using namespace std; int main() { int aux=0; float num, sum=0; while(true){ cout<<"Nota: "; cin >> num; if(num>10){ cout<<"Nota acima de 10 são inválidas"<<endl; continue; } if(num<0){ cout<<"Nota negativa, encerrando cálculos e exibindo a média: "; break; } sum+=num; aux++; } cout<<(sum/aux)<<endl; return 0; }Note que a média é calculada apenas para números válidos. Para encerrar o looping, você precisa digitar um valor negativo.
Nenhum comentário:
Postar um comentário