Olá, pessoal!
Sou iniciante em programação. Criei um sistema simples para mostrar os valores de uma matriz, conforme o menu de escolha. O sistema só é encerrado, se o valor 5 for digitado. Segue abaixo o código:
#include<iostream>
#include<stdio.h>
#include<locale.h>
using namespace std;
int Menu (){
cout << "=========================================" << endl;
cout << " M E N U D E O P Ç Õ E S " << endl;
cout << "=========================================" << endl;
cout << "[1] Mostrar a Matriz" << endl;
cout << "[2] Diagonal Principal" << endl;
cout << "[3] Triângulo Superior" << endl;
cout << "[4] Triângulo Inferior" << endl;
cout << "[5] Sair" << endl;
cout << "=========================================" << endl;
}
int main (){
setlocale (LC_ALL, "Portuguese");
int l, c, mat[4][4], opcao;
char esc = 's';
for (l = 0; l < 4; l++){
for (c = 0; c < 4; c++){
cout << "Digite o valor da posição " << "[" << l << "," << c << "]: ";
cin >> mat[l][c];
}
}
system ("cls");
do{
Menu();
cout << "Digite a opção desejada: ";
cin >> opcao;
system ("cls");
if (opcao == 1){
for (l = 0; l < 4; l++){
for (c = 0; c < 4; c++){
printf ("%5d", mat[l][c]);
}
cout << "\n";
}
}
if (opcao == 2){
for (l = 0; l < 4; l++){
printf ("\n%5d", mat[l][l]);
}
cout << "\n";
}
if (opcao == 3){
for (l = 0; l < 4; l++){
for (c = 0; c < 4; c++){
if (l > c || l == c){
printf (" ");
}else if (l < c || l == c){
printf ("%5d", mat[l][c]);
}
}
cout << "\n";
}
}
if (opcao == 4){
for (l = 0; l < 4; l++){
for (c = 0; c < 4; c++){
if (l < c || l == c){
printf (" ");
}else if (l > c || l == c){
printf ("%5d", mat[l][c]);
}
}
cout << "\n";
}
}
}while (opcao < 5);
cout << "ENCERRANDO...";
}
Eu gostaria de fazer uma implementação para mostrar da seguinte maneira: Se o usuário digitar algum valor que não está contido no menu, o sistema mostraria a informação "VALOR INVÁLIDO". O problema é que se eu fizer uma condição para comparar se a minha variável "opcao" for menor do que 1 ou "opcao" maior do que 5, o sistema irá encerrar o meu programa e exibir a mensagem "VALOR INVÁLIDO", juntamente com a outra mensagem do final do programa que é "ENCERRANDO..."
De que forma eu poderia implementar isso, sem que o meu programa fosse encerrado até que o valor 5 seja escolhido? Alguém poderia me ajudar? Grato pela atenção!