Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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 将可验证文件保存在while循环中以供以后使用_Java_While Loop - Fatal编程技术网

Java 将可验证文件保存在while循环中以供以后使用

Java 将可验证文件保存在while循环中以供以后使用,java,while-loop,Java,While Loop,我似乎找不到答案,因为我对java非常陌生,可能在寻找错误的东西 public class ClassMethodtest { /** * @param args the command line arguments */ public static void main(String[] args) { Scanner replay = new Scanner(System.in); String answer; do{ Move

我似乎找不到答案,因为我对java非常陌生,可能在寻找错误的东西

       public class ClassMethodtest {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

    Scanner replay = new Scanner(System.in);

    String answer;



   do{ 
      MoveClass newMoveClass = new MoveClass();

     newMoveClass.MoveAround();

     newMoveClass.Location();

            System.out.println("move again?");

    answer = replay.next();


   } while(answer.equals("yes"));
}




public class MoveClass {

private final String array[] = {"A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4", 
                         "C1", "C2", "C3", "C4", "D1", "D2", "D3", "D4"};
private final Scanner kb = new Scanner(System.in);    

private String location = array[0]; 


public void MoveAround(){

    System.out.println("move around");
    String answer = kb.next();

   switch (location) {
       case "A1":
           if(answer.equals("down")){
               location = array[4];
           }
           else if(answer.equals("right")){
               location = array[1];
           }  break;
           //etc.....

如何在每次运行循环时“保存”结果,以便下次运行循环?当主类中的while循环再次循环时,它将返回到“location”的第一个取消公差。

在代码中,每次代码运行do while时,您都在创建
newMoveClass
对象。您需要稍微修改代码,以便创建的MoveClass实例在循环的所有迭代中都是相同的,如下所示:

MoveClass newMoveClass = new MoveClass();

do{ 

     newMoveClass.MoveAround();

     newMoveClass.Location();

     System.out.println("move again?");

     answer = replay.next();


   } while(answer.equals("yes"));
ArrayList<Integer> results = new ArrayList<Integer>();

while(<some condition>) {
    // do computation with Integer temp
    Integer temp = new Integer(100);
    results.add(temp);
}
更一般的示例可能如下所示:

MoveClass newMoveClass = new MoveClass();

do{ 

     newMoveClass.MoveAround();

     newMoveClass.Location();

     System.out.println("move again?");

     answer = replay.next();


   } while(answer.equals("yes"));
ArrayList<Integer> results = new ArrayList<Integer>();

while(<some condition>) {
    // do computation with Integer temp
    Integer temp = new Integer(100);
    results.add(temp);
}
ArrayList结果=新建ArrayList();
while(){
//使用整数temp进行计算
整数温度=新整数(100);
结果:添加(温度);
}

while循环条件不再成立后,结果将显示在ArrayList中。

您的代码示例不会执行您声称的操作。请尝试并制作一个实际显示您所遇到问题的示例。在本例中,
x
将是
1
,直到循环开始,然后是
2
循环持续时间。还请解释“循环重新启动时”的真正含义。main方法只运行一次。为什么循环会重新启动?当它停留在循环中时,你所说的“当循环重新启动”是什么意思?请更清楚你的想法question@Lattyware实际上,代码甚至不会编译,因为x声明了两次。@jbnize不太好,而且
某些东西不存在-我忽略了这些问题。这个例子真的没有帮助。我的猜测是,用户的实际问题可能是在while语句中使用
=
,而不是
=
,然后错过了将其归因于循环中的某些内容。如果没有真正的代码示例,就无法确定答案。这可能是答案,但很难说出用户的问题,我会一直等到用户澄清。非常感谢,工作非常完美!!!对于专业的程序员来说,这似乎不算什么,但你的回答为我打开了许多大门。非常感谢:)