Java while循环中的输入(扫描仪)变量

Java while循环中的输入(扫描仪)变量,java,Java,我试图让程序要求一个百分比(等级),但我希望它再次询问后,用户已经作出了第一次输入,并看到了输出。我在循环中遇到问题,因为变量myMark没有赋值 import java.util.Scanner; public class passFail{ public static void main(String[] args){ Scanner result = new Scanner(System.in); int myMark = 0;

我试图让程序要求一个百分比(等级),但我希望它再次询问后,用户已经作出了第一次输入,并看到了输出。我在循环中遇到问题,因为变量myMark没有赋值

import java.util.Scanner;
public class passFail{


    public static void main(String[] args){

        Scanner result = new Scanner(System.in);
        int myMark = 0;

        while(myMark >=0 && myMark <=100){

            System.out.println("Please enter the percentage you have received:");
            myMark = result.nextInt();

            if(myMark <=49 && myMark >=0){

                System.out.println("You have failed!");
            }

            else if(myMark <=59 && myMark >=50){
                System.out.println("You have passed!");
            }

            else if(myMark <=69 && myMark >=60){
                System.out.println("You have received a Credit");
            }

            else if(myMark <=79 && myMark >=70){
                System.out.println("You have received a Distinction!");
            }

            else if(myMark <=100 && myMark >=80){
                System.out.println("You have received a High Distinction");
            }

            else{
                System.out.println("Please enter a whole number");
            }


        }

    }


}
import java.util.Scanner;
公共类passFail{
公共静态void main(字符串[]args){
扫描仪结果=新扫描仪(System.in);
int-myMark=0;

而(myMark>=0&&myMark在使用它之前,您需要先定义
myMark
。如下所示:

  Scanner result = new Scanner(System.in); 
  int myMark = result.nextInt();

  while(myMark >=0 && myMark <= 100){

        System.out.println("Please enter the percentage you have received:");
        myMark = result.nextInt();
      ..................
Scanner result=新扫描仪(System.in);
int myMark=result.nextInt();

而(myMark>=0&&myMark在使用它之前,您需要先定义
myMark
。如下所示:

  Scanner result = new Scanner(System.in); 
  int myMark = result.nextInt();

  while(myMark >=0 && myMark <= 100){

        System.out.println("Please enter the percentage you have received:");
        myMark = result.nextInt();
      ..................
Scanner result=新扫描仪(System.in);
int myMark=result.nextInt();

当(myMark>=0&&myMark-您忘记了
声明变量
myMark


-您已将其声明为
类型
(数据类型)

例如:

int myMark;

-如果将
扫描器放置在循环外部会更好,因为您只想获取一次输入…

-您忘记了
声明变量
myMark


-您已将其声明为
类型
(数据类型)

例如:

int myMark;

-如果将
扫描仪放置在循环外部会更好,因为您只想获取一次输入…

在循环条件下使用
之前,您应该声明您的
myMark
。。 另外,您应该将
扫描仪
声明为实例变量

public class Demo {
    private Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {

        int myMarks = 0;
        while (myMarks >= 0 && myMark < 100) {
            // Rest is all same
        }
    }
}
公共类演示{
专用扫描仪=新扫描仪(System.in);
公共静态void main(字符串[]args){
int-myMarks=0;
而(myMarks>=0&&myMark<100){
//其余的都一样
}
}
}

while
循环条件下使用
myMark之前,您应该声明您的
myMark
。。 另外,您应该将
扫描仪
声明为实例变量

public class Demo {
    private Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {

        int myMarks = 0;
        while (myMarks >= 0 && myMark < 100) {
            // Rest is all same
        }
    }
}
公共类演示{
专用扫描仪=新扫描仪(System.in);
公共静态void main(字符串[]args){
int-myMarks=0;
而(myMarks>=0&&myMark<100){
//其余的都一样
}
}
}

我还要指出,在循环开始之前,您只需要创建一次扫描仪。您不需要每次在循环中都创建扫描仪。这不起作用。我已使用工作代码更新了我的问题。@Kronos:如果您可以将其作为答案发布并接受,未来的用户将很清楚,而不是更新问题。@Kronos:nt指出,在循环开始之前,您只需要创建一次扫描仪。您不需要每次在循环内创建扫描仪。这不起作用。我已用工作代码更新了我的问题。@Kronos:如果您可以将其作为答案发布并接受,未来的用户将很清楚,而不是更新问题。可能是du的重复皱褶