java - if 语句在退出 while 语句后不起作用
问题描述
因此,在退出我的循环后,我的最后一条if
语句由于某种原因无法解决,它可能只是一个愚蠢的错误,但我似乎找不到它。
这是有问题的代码。我删除了其中只是文本的一部分,以使代码更短。
public class Prototype_SAAQ {
public static void main(String[] args) {
char sex;
int nbHommes;
int nbFemmes;
int ageFemmes;
int ageHommes;
int ageMoyenHomme;
int ageMoyenFemme;
char options;
int vitesseMax;
int vitesseRadar;
int vitesseTotal;
int totalPoints;
int nbInfractions;
System.out.println("Ce programme est un PROTOTYPE pour la gestion des infractions du code de la route");
System.out.println("OPTION");
System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
System.out.println("z/Z - Depassements successifs en zigzag ");
System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
System.out.println("d/D - Distance imprudente entre les vehicules");
System.out.println("q/Q - Quitter le programme");
System.out.println("Entrez votre choix: ");
options = Clavier.lireChar();
totalPoints = 0;
nbHommes = 0;
nbFemmes = 0;
ageMoyenHomme = 0;
ageMoyenFemme = 0;
nbInfractions = 0;
while (options != ('q') || options != ('Q')) {
if (options == ('s') || options == ('S')) {
System.out.println("OPTION");
System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
System.out.println("z/Z - Depassements successifs en zigzag");
System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
System.out.println("d/D - Distance imprudente entre les vehicules");
System.out.println("q/Q - Quitter le programme");
System.out.println("Entrez votre choix: ");
options = Clavier.lireChar();
}
if (options == ('z') || options == ('Z')) {
System.out.println("Depassements successifs en zigzag");
System.out.println("OPTION");
System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
System.out.println("z/Z - Depassements successifs en zigzag");
System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
System.out.println("d/D - Distance imprudente entre les vehicules");
System.out.println("q/Q - Quitter le programme");
System.out.println("Entrez votre choix: ");
options = Clavier.lireChar();
}
if (options == ('t') || options == ('T')) {
System.out.println("Conduite en faisant usage d'un appareil muni d'une fonction téléphonique");
System.out.println("OPTION");
System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
System.out.println("z/Z - Depassements successifs en zigzag");
System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
System.out.println("d/D - Distance imprudente entre les vehicules");
System.out.println("q/Q - Quitter le programme");
System.out.println("Entrez votre choix: ");
options = Clavier.lireChar();
}
if (options == ('c') || options == ('C')) {
System.out.println("Conduite pour un pari, un enjeu ou une course");
System.out.println("OPTION");
System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
System.out.println("z/Z - Depassements successifs en zigzag");
System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
System.out.println("d/D - Distance imprudente entre les vehicules");
System.out.println("q/Q - Quitter le programme");
System.out.println("Entrez votre choix: ");
options = Clavier.lireChar();
}
if (options == ('d') || options == ('D')) {
System.out.println("Distance imprudente entre les vehicules");
System.out.println("OPTION");
System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
System.out.println("z/Z - Depassements successifs en zigzag");
System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
System.out.println("d/D - Distance imprudente entre les vehicules");
System.out.println("q/Q - Quitter le programme");
System.out.println("Entrez votre choix: ");
options = Clavier.lireChar();
}
}
if (options == ('q') || options == ('Q')) {
System.out.println("Nombres d'infractions: " + nbInfractions);
}
}
}
解决方案
您编写了一个无限循环:
while (options != ('q') || options != ('Q')) { ... }
字符不能同时是“q”和“Q”。我假设你想写:
while (! (options=='q' || options=='Q') ) {...}
推荐阅读
- python - Docker python客户端不从自定义上下文构建图像
- c# - 在 JSON 中,如何使用 C# 将相同的键值对递归添加到现有键之一
- forms - 在 Coldfusion 中,如何将多个具有相同名称的复选框值插入到数据库中?
- sql - Maximo 中的 ASSET 表是否有主键?
- ios - 将 ObjectiveC 中具有外部依赖项的项目绑定到 Xamarin iOS
- json - 如何将 API 列表和授权密钥存储在 appsetting 文件中
- r - 删除字符串向量中大于 11 的所有数字 - R
- python - 具有重复索引值的 df.Pivot
- html - Schema:列出嵌套对象时是否有必要(甚至可取)重复结构化数据?
- javascript - 配置 intern.json 文件以映射到所有依赖项