Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否继续是/否并在Java中将int x重置为新值?_Java_Loops_While Loop - Fatal编程技术网

是否继续是/否并在Java中将int x重置为新值?

是否继续是/否并在Java中将int x重置为新值?,java,loops,while-loop,Java,Loops,While Loop,我正在做一个等级转换器。目标是以百分比的形式输入你的分数,然后它会告诉你你的字母分数。然后在结束时询问是否继续。如果你说“是”,它会再次要求你输入数字分数等,你可以再次转换。我有一个问题,一旦我为数值等级输入一个值,它将保持该值,并且不会要求您再次输入数值等级。任何帮助都将不胜感激。谢谢 import java.util.Scanner; public class Doc2 { public static void main(String[] args) { Scanner sc = n

我正在做一个等级转换器。目标是以百分比的形式输入你的分数,然后它会告诉你你的字母分数。然后在结束时询问是否继续。如果你说“是”,它会再次要求你输入数字分数等,你可以再次转换。我有一个问题,一旦我为数值等级输入一个值,它将保持该值,并且不会要求您再次输入数值等级。任何帮助都将不胜感激。谢谢

import java.util.Scanner;


public class Doc2
{

public static void main(String[] args)
{

Scanner sc = new Scanner(System.in);

System.out.println("Welcome to Leter Grade Converter"); //Wellcome User
System.out.println(); //Blake Space
System.out.println("Enter numerical grade: "); //Promt user for input

int x;
x = sc.nextInt();

{
        if (x <= 100 && x >= 90) {
            System.out.println("Letter grade: A");
        }

        if(x <= 89 && x >= 80) {
            System.out.println("Letter grade: B");
        }

        if(x <= 79 && x >= 70) {
            System.out.println("Letter grade: C");
        }

        if(x <=69 && x >=60) {
            System.out.println("Letter grade: D");
        }

        if(x <=50 && x >=0) {
            System.out.println("Letter grade: F");
 }


String choice = "y";
while (choice.equalsIgnoreCase("y"))
{


    if (x <= 100 && x >= 90) {
        System.out.println("Letter grade: A");
    }

    if(x <= 89 && x >= 80) {
        System.out.println("Letter grade: B");
    }

    if(x <= 79 && x >= 70) {
        System.out.println("Letter grade: C");
    }

    if(x <=69 && x >=60) {
        System.out.println("Letter grade: D");
    }

    if(x <=50 && x >=0) {
        System.out.println("Letter grade: F");
    }

System.out.println ("Continue? (y/n): ");
choice = sc.next();
System.out.println();

} //end while
} //end main() method
}
}
import java.util.Scanner;
公共类Doc2
{
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“欢迎使用Leter Grade Converter”);//Wellcome用户
System.out.println();//Blake空间
System.out.println(“输入数值等级:”;//提示用户输入
int x;
x=sc.nextInt();
{
如果(x=90){
System.out.println(“字母等级:A”);
}
如果(x=80){
系统输出打印项次(“字母等级:B”);
}
如果(x=70){
系统输出打印项次(“字母等级:C”);
}
如果(x=60){
系统输出打印项次(“字母等级:D”);
}
如果(x=0){
系统输出打印项次(“字母等级:F”);
}
字符串选择=“y”;
while(choice.equalsIgnoreCase(“y”))
{
如果(x=90){
System.out.println(“字母等级:A”);
}
如果(x=80){
系统输出打印项次(“字母等级:B”);
}
如果(x=70){
系统输出打印项次(“字母等级:C”);
}
如果(x=60){
系统输出打印项次(“字母等级:D”);
}
如果(x=0){
系统输出打印项次(“字母等级:F”);
}
System.out.println(“是否继续?”);
choice=sc.next();
System.out.println();
}//结束时
}//end main()方法
}
}

您需要将分数输入移动到循环中,否则它将继续使用相同的
x
值:

String choice = "y";
while (choice.equalsIgnoreCase("y")) {
    int x = sc.nextInt();

    if (x <= 100 && x >= 90) {
        System.out.println("Letter grade: A");
    }
    //...

    System.out.println ("Continue? (y/n): ");
    choice = sc.next();
    System.out.println();
}
String choice=“y”;
while(choice.equalsIgnoreCase(“y”)){
int x=sc.nextInt();
如果(x=90){
System.out.println(“字母等级:A”);
}
//...
System.out.println(“是否继续?”);
choice=sc.next();
System.out.println();
}

使用do-while循环。这样,您的代码肯定会第一次运行。然后,当用户输入“y”时,它将再次运行。像这样更改代码

public static void main(String[] args)
{

     Scanner sc = new Scanner(System.in);

     System.out.println("Welcome to Leter Grade Converter");//Wellcome User
     System.out.println(); //Blake Space
     do{
         System.out.println("Enter numerical grade: "); //Promt user for input

         int x;
         x = sc.nextInt();

        if (x <= 100 && x >= 90) {
            System.out.println("Letter grade: A");
        }

        if(x <= 89 && x >= 80) {
            System.out.println("Letter grade: B");
        }

        if(x <= 79 && x >= 70) {
            System.out.println("Letter grade: C");
        }

        if(x <=69 && x >=60) {
            System.out.println("Letter grade: D");
        }

        if(x <=50 && x >=0) {
            System.out.println("Letter grade: F");
        }
        System.out.println("Do you want to continue(y/n)?");
        String choice=sc.nextLine();
    }while(choice.equalsIgnoreCase("Y"));
}
publicstaticvoidmain(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“欢迎使用Leter Grade Converter”);//Wellcome用户
System.out.println();//Blake空间
做{
System.out.println(“输入数值等级:”;//提示用户输入
int x;
x=sc.nextInt();
如果(x=90){
System.out.println(“字母等级:A”);
}
如果(x=80){
系统输出打印项次(“字母等级:B”);
}
如果(x=70){
系统输出打印项次(“字母等级:C”);
}
如果(x=60){
系统输出打印项次(“字母等级:D”);
}
如果(x=0){
系统输出打印项次(“字母等级:F”);
}
System.out.println(“是否要继续(y/n)”;
字符串选择=sc.nextLine();
}while(choice.equalsIgnoreCase(“Y”));
}

这样,每次程序都会提示用户输入x值和choice变量值,该变量决定程序的继续。

java!=javascript“一旦我为数字等级输入了一个值,它将保持该值,并且不会要求您再次输入数字等级”。。。你没有在循环中要求分数,所以问题不是很明显吗?可能重复:我没有在循环中要求分数的原因是因为当我这样做的时候,我做了一个无限循环,一次又一次地重复“输入数值”
do{…}while(response.toLowerCase.equals(“yes”)或类似的代码