2016-06-21 35 views
-1

我有一个简单的Java代码,需要将程序循环回到给定输入的开始位置。我不能发布整个代码,因为它是用于分配的,但基本上我有一个用户输入,计算和打印结果部分,最后给出了以前输入的所有结果,现在我需要重新启动它。我已经使用do-while循环试过了,是这样的:如何在Java中重新启动/循环程序?

do 
    { 
    System.out.println("Enter Another Student? Y or N"); 
    sLoop = console.nextLine(); 
    }while (sLoop.equals("Y") || sLoop.equals("y")); 

但是,这只是显示文本和结束程序,而不使用户输入值的选项。但是,我知道这是错误的,因为它没有给出任何迹象表明它应该回到顶端。任何帮助表示赞赏。我会公布开始,所以你知道这看起来如何,但我不能发布整个事情。

import java.util.*; 

public class ---- { 

    public static void main (String[] args) { 

    Scanner console = new Scanner (System.in); 

在此之后我有用户输入,这一切工作正常,但我在困惑如何从开始到结束循环程序。我想我可能不得不把我的整个代码(在扫描仪控制台下)做,然后放在最后,但我认为'while'的条件不会起作用。我希望这是有道理的。谢谢!

此外,代码单独工作。但是当我开始输入数据时,它停止工作,不允许用户输入。

+2

做',而(sLoop.equals( “Y”)|| sLoop.equals( “Y”));'必须',而(sRestart.equals( “Y” )|| sRestart.equals(“y”));'? –

+0

[适用于我。](https://ideone.com/EE9m8L)在我的测试中,我有没有做过你没做过的事情? – 4castle

+0

对不起,sLoop和sRestart是同一件事,我的意思是改变他们。它们是同一个变量。 – KenwayCreed

回答

0

如果你要循环的时间像10倍左右幕量:

int x = 0; 
while(x < 10){ 
    //Code here 
    x++; 
} 

如果您需要循环它对整个时间:

boolean running = false; 

这就是全球布尔

//When the program starts(Probably in constructor or main method) 
running = true; 

和循环:

while(running){ 
    //Code you want to loop here 
} 
+2

'如果你想循环10次左右的窗帘时间'你可能想要在那里使用for循环 –

+0

但是没有一定的时间我想重新启动。该任务是创建一个代码,允许教师输入学生信息,如姓名和成绩,然后询问他们是否想要输入另一名学生。如果是,请从顶部启动该程序。如果没有,请停止该程序 – KenwayCreed

+0

@ DonatPants我同意。我是一个noob然后 for(int x; x <10; x ++){//代码在这里}我从来没有真正学过循环,所以我不知道这是否正确 –

0

你的第一个代码示例几乎是你所需要的。看看这个运行例如:

import java.util.Scanner; 

public class LoopStudents { 

    public static void main(String[] args) { 

     Scanner console = new Scanner(System.in); 

     String sLoop; 
     do { 
      // do something with the student 
      System.out.println("Enter name of student:"); 
      String name = console.nextLine(); 
      System.out.println("Name = " + name); 

      System.out.println("Enter Another Student? Y or N"); 
      sLoop = console.nextLine(); 
     } while (sLoop.equals("Y") || sLoop.equals("y")); 
    } 
}