-1

我想制定一个获得成绩的逻辑。我继续使用Scanner该类从用户那里获取总分作为输入,然后我正在验证分数是否介于0100(包括两者)之间。

现在,如果标记不在此范围内,我打印“输入有效标记!!”,我希望它转到上一步并再次要求用户输入。

import java.util.Scanner;
class Performance
{
    public static void main(String[] aa)
    {
        Scanner scnr = new Scanner(System.in);
        System.out.println("Enter the marks :"); // Line 7
        int marks= scnr.nextInt();
        if(marks<0 || marks>100)
        {
            System.out.println("Enter valid marks!!");
        }
    // Now if this condition is true then I want the control to go again to line 7
    // Please suggest me the way to Proceed
    }
}

请建议在上述代码中进行修改的方法。

4

5 回答 5

2

请参阅此链接

你想做这样的事情:

do {
   code line 1;
   code line 2;
   code line 3;
} while(yourCondition);

现在,如果yourCondition满足,代码将code line 1再次转到(将执行 和 之间的代码块dowhile

现在,在您了解它的工作原理之后,您可以轻松地将其应用到您的任务中。

于 2013-04-20T16:13:06.063 回答
1

尝试这个:

boolean b = true;
while(b){

    if(marks<0 || marks>100){
        System.out.println("Enter valid marks!!");
        marks= scnr.nextInt();
     }

     else{
         b= false;
        //Do something
     }
}
于 2013-04-20T16:12:25.187 回答
1
Scanner scnr = new Scanner(System.in);
do {
    System.out.println("Enter the marks :"); // Line 7
    int marks= scnr.nextInt();
    if(marks<0 || marks>100)
    {
        System.out.println("Enter valid marks!!");
    } else
        break;
} while (true);
于 2013-04-20T16:16:42.573 回答
0

谢谢大家帮助。最后我按照以下方式进行:

  public static void main(String[] aaa)
 {

int counter=0;
Scanner scnr = new Scanner(System.in);
int marks;
do
{
    counter++;
    System.out.println("Enter the marks :");

    marks= scnr.nextInt();
    if(marks<0 || marks>100)
    {
        System.out.println("Marks entered are not        valid");
        if(counter>=3)
        {
            System.out.println("You have exceeded the maximum number of attempts!!");
            System.exit(1);
        }
        else
            System.out.println("Enter valid marks!!");

    }
    else
        break;
} while(true);
 }
于 2013-04-21T10:50:56.117 回答
0
8     int marks = scnr.nextInt();
9     while(marks<0 || marks>100)
10    {
11        System.out.println("Enter valid marks!!");
12        System.out.println("Enter the marks :");
13        marks = scnr.nextInt();
14    }
于 2013-04-20T16:17:28.407 回答