IF SWITCH 06
Aula 6: Comandos Condicionais II
Decis˜ ao m´ ultipla • Dependendo do problema proposto, o programa pode ser formado por um conjunto muito grande de comandos if e express˜oes l´ogicas.
Ex: Fa¸ca um programa que, dado um RA, emite uma mensagem se o aluno estiver matriculado em uma turma de MC102.
Decis˜ ao simples
Para apenas um aluno, a solu¸c˜ao seria: main () { int a; scanf("%d", &a); if (a == 10129) { printf("O aluno %d est´ a matriculado\n", a);
}
}
Decis˜ ao m´ ultipla Para dois alunos, a solu¸c˜ao seria: main () { int a; scanf("%d", &a); if (a == 10129 a == 16267) { printf("O aluno %d est´ a matriculado\n", a);
}
}
Decis˜ ao m´ ultipla • Problema: cada turma de MC102 possui cerca de 60 alunos e temos 14 turmas neste semestre. if (a == 2582 || a == 10129 || a == 16267 || ... a = 962185) { printf("O aluno %d est´ a matriculado\n", a);
}
• Ter´ıamos muitas condi¸c˜oes a serem testadas.
Decis˜ ao m´ ultipla • Fa¸ca um programa que, dado um RA, mostre o nome desse aluno.
Decis˜ ao simples
Para apenas um aluno, a solu¸c˜ao seria: main () { int a; scanf("%d", &a); if (a == 10129) { printf("Maria C^ andida Moreira Telles\n", a);
}
}
Decis˜ ao m´ ultipla main () { int a; scanf("%d", &a); if (a == 10129) printf("Maria C^ andida Moreira Telles\n"); if (a == 33860) printf("Larissa Garcia Alfonsi\n"); if (a == 33967) printf("Leonardo Kozlowiski Kenupp\n");
}
Decis˜ ao m´ ultipla • Novamente, temos um conjunto muito grande de alunos.
• Al´em disso, n˜ao podemos utilizar os operadores l´ogicos que utilizamos anteriormente.
• Podemos tentar diminuir o n´umero de testes realizados?
Decis˜ ao m´ ultipla main () { int a; scanf("%d", &a); if (a == 10129) printf("Maria C^ andida Moreira Telles\n"); else if (a == 33860) printf("Larissa Garcia Alfonsi\n"); else if (a == 33967) printf("Leonardo Kozlowiski Kenupp\n");
}
O comando switch
• O objetivo do comando switch ´e simplificar uma express˜ao onde uma