Java 我的代码忽略后续的if和while条件

Java 我的代码忽略后续的if和while条件,java,Java,我正在设计一个项目来比较用户结果和标准结果。我的算法不会完全按照我希望的方式运行(评分系统)。我的代码的问题是,它不会以我希望的方式运行。它将只读取第一个“while”和“if”条件。它根本无法识别其他条件。年龄和分数将由外部来源提供,因此这只是工具的算法/评分系统 import java.util.Scanner; public class algorithm_tester { int score; int age; public static void mai

我正在设计一个项目来比较用户结果和标准结果。我的算法不会完全按照我希望的方式运行(评分系统)。我的代码的问题是,它不会以我希望的方式运行。它将只读取第一个“while”和“if”条件。它根本无法识别其他条件。年龄和分数将由外部来源提供,因此这只是工具的算法/评分系统

import java.util.Scanner;

public class algorithm_tester {

    int score;

    int age;

    public static void main(String[] args) {

        int score = 0;
        int age = 0;

        Scanner input = new Scanner(System.in);

        //User Inputs Score
        System.out.print("Enter Your Score: ");
        int myscore = input.nextInt();
        System.out.println("Score entered = " + myscore);

        //User Inputs Age
        System.out.print("Enter Your Age: ");
        int myAge = input.nextInt();
        System.out.println("Age entered = " + myAge);

        while (age < 30) {

            if (score < 15) {
                System.out.println("Your Score Is Slightly Abnormal For Your Age.");
            } else if (score < 10) {
                System.out.println("Your Results Are Rather Low. Therefore, We Recommend You Seek Medical Advice.");
            } else if (score < 8) {
                System.out.println("Your Results Suggest Severe Cognitive Impairment. You Must Seek Medical Attention Immediately.");
            } else {
                System.out.println("Well Done! You Scored Very Well.");
            }

            while (age < 40) {

                if (score < 14) {
                    System.out.println("Your Results Are Slightly Abnormal For Your Age.");
                } else if (score < 10) {
                    System.out.println("We Recommend You Seek Medical Advice As Your Results Are Quite Low.");
                } else if (score < 7) {
                    System.out.println("Your Score Is Very Low. We Believe You May Have Experienced Majoe Cognitive Impairment. We Recommend You Seek Immediate Medical Attention.");
                } else {
                    System.out.println("Well Done! You Have Shown No Evidence Cognitive Impairment");
                }

                while (age < 60) {

                    if (score < 12) {
                        System.out.println("Your Results Are Slightly Abnormal For Your Age.");
                    } else if (score < 9) {
                        System.out.println("Your Score is Very Low. We Believe This Is Due To Minor Cognitive impairment. We Recommend You Seek Medical Advice.");
                    } else if (score < 6) {
                        System.out.println("Your Results Have Led Us to Believe You Have Suffered Severe Cognitive Impairment. You Must Seek Medical Attention Immediately.");
                    } else {
                        System.out.println("Congratulations! Your Results Were Excellent. You Have Shown No Evidence Of Cognitive Impairment");
                    }

                    while (age < 80) {

                        if (score < 10) {
                            System.out.println("Your Results Are Slightly Abnormal For Your Age.");
                        } else if (score < 7) {
                            System.out.println("Your Score is Very Low. We Believe This Is Due To Minor Cognitive impairment. We Recommend You Seek Medical Advice.");
                        } else if (score < 5) {
                            System.out.println("Your Results Have Led Us to Believe You Have Suffered Severe Cognitive Impairment. You Must Seek Medical Attention Immediately.");
                        } else {
                            System.out.println("Congratulations! Your Results Were Excellent. You Have Shown No Evidence Of Cognitive Impairment");
                        }

                        while (age > 80) {

                            if (score < 10) {
                                System.out.println("Your Results Are Slightly Abnormal For Your Age.");
                            } else if (score < 6) {
                                System.out.println("Your Score is Very Low. We Believe This Is Due To Minor Cognitive impairment. We Recommend You Seek Medical Advice.");
                            } else if (score < 4) {
                                System.out.println("Your Results Have Led Us to Believe You Have Suffered Severe Cognitive Impairment. You Must Seek Medical Attention Immediately.");
                            } else {
                                System.out.println("Congratulations! Your Results Were Excellent. You Have Shown No Evidence Of Cognitive Impairment");
                            }
                        }
                    }
                }
            }
        }
    }
}
import java.util.Scanner;
公共类算法测试仪{
智力得分;
智力年龄;
公共静态void main(字符串[]args){
智力得分=0;
int年龄=0;
扫描仪输入=新扫描仪(System.in);
//用户输入分数
System.out.print(“输入您的分数:”);
int myscore=input.nextInt();
System.out.println(“输入分数=”+myscore);
//用户输入年龄
系统输出打印(“输入您的年龄:”;
int myAge=input.nextInt();
System.out.println(“输入的年龄=”+myAge);
而(年龄<30岁){
如果(分数<15){
System.out.println(“你的分数对你的年龄来说有点不正常。”);
}否则如果(分数<10){
System.out.println(“您的结果很低。因此,我们建议您寻求医疗建议。”);
}否则如果(分数<8){
“你的结果表明有严重的认知障碍。你必须立即就医。”;
}否则{
System.out.println(“干得好!你的得分很好。”);
}
而(年龄<40岁){
如果(分数<14){
System.out.println(“您的结果对于您的年龄来说有点不正常。”);
}否则如果(分数<10){
System.out.println(“我们建议您寻求医疗建议,因为您的结果非常低。”);
}否则如果(分数<7){
System.out.println(“你的分数很低。我们相信你可能经历了严重的认知障碍。我们建议你立即就医。”);
}否则{
System.out.println(“干得好!您没有显示任何认知障碍的证据”);
}
而(年龄<60岁){
如果(分数<12){
System.out.println(“您的结果对于您的年龄来说有点不正常。”);
}否则如果(分数<9){
System.out.println(“你的分数很低。我们认为这是由于轻微的认知障碍。我们建议你寻求医疗建议”);
}否则如果(分数<6){
“你的结果让我们相信你有严重的认知障碍。你必须立即就医。”;
}否则{
祝贺你!你的成绩非常好。你没有表现出任何认知障碍的迹象;
}
而(年龄<80岁){
如果(分数<10){
System.out.println(“您的结果对于您的年龄来说有点不正常。”);
}否则如果(分数<7){
System.out.println(“你的分数很低。我们认为这是由于轻微的认知障碍。我们建议你寻求医疗建议”);
}否则如果(分数<5){
“你的结果让我们相信你有严重的认知障碍。你必须立即就医。”;
}否则{
祝贺你!你的成绩非常好。你没有表现出任何认知障碍的迹象;
}
而(年龄>80岁){
如果(分数<10){
System.out.println(“您的结果对于您的年龄来说有点不正常。”);
}否则如果(分数<6){
System.out.println(“你的分数很低。我们认为这是由于轻微的认知障碍。我们建议你寻求医疗建议”);
}否则如果(分数<4){
“你的结果让我们相信你有严重的认知障碍。你必须立即就医。”;
}否则{
祝贺你!你的成绩非常好。你没有表现出任何认知障碍的迹象;
}
}
}
}
}
}
}
}

这是因为您的
while
循环是无限循环,并且您应该颠倒
if
语句的顺序。在任何循环中都不会得到用户输入,因此无法更改值。例如,一旦
age<30
,则
age
将始终小于30,因此此循环将永远不会结束,并且在
循环期间,它将永远不会运行除该特定
中的内容以外的程序的任何其他部分

就这点而言,您目前正在将
age
score
硬编码为0,并且从未更改它们-我假设您希望在此处获得用户输入或其他信息

然而,一个
while
循环从根本上说对您试图实现的目标没有意义。实际上应该使用嵌套的
if
语句,如下所示:

if (age < 30) {
   if (score < 8) {
      // ...
   }
   else if (score < 10) {
      // ...
   }
   // Etc.
}
else if (age < 40) {
   // ...
}
else if (age < 60) {
   // ...
}
// Etc.
if(年龄<30岁){
如果(分数<8){
// ...
}
否则如果(分数<10){
// ...
}
//等等。
}
否则,如果(年龄<40岁){
// ...
}
否则,如果(年龄<60岁){
// ...
}
//等等。
如果你想重复整个过程