Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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修复我的循环代码?_Java_Loops - Fatal编程技术网

如何用JAVA修复我的循环代码?

如何用JAVA修复我的循环代码?,java,loops,Java,Loops,我正试图使它,如果人键入任何其他除了“宝马”或“奥迪”,他们会被送回点,他们得到重新键入,我是一个初学者编码,所以请解释,如果可能的话:3谢谢!对不起,如果我的代码是混乱的仍然是新的这和工作 编辑:非常感谢大家的帮助:3 import java.util.Scanner; class MyClass { public static void main(String[ ] args) { Vehicle V1 = new Vehicle(); Vehicle V2 = new Vehi

我正试图使它,如果人键入任何其他除了“宝马”或“奥迪”,他们会被送回点,他们得到重新键入,我是一个初学者编码,所以请解释,如果可能的话:3谢谢!对不起,如果我的代码是混乱的仍然是新的这和工作

编辑:非常感谢大家的帮助:3

import java.util.Scanner;

class MyClass {

public static void main(String[ ] args) {
  Vehicle V1 = new Vehicle();
  Vehicle V2 = new Vehicle();


  //Vehicle 1 (BMW)
  V1.setColour("Blue");
  V1.setFuel(56);
  V1.setWheels(3);
  V1.setMaxSpeed(150);
  //Vehicle 2 (AUDI)
  V2.setColour("Red");
  V2.setFuel(59);
  //Wheels and Max speed are on default...


      System.out.println("Choose from Audi or BMW");
      Scanner input = new Scanner(System.in);
      String q = input.next();
      while(q.equalsIgnoreCase("BMW") || q.equalsIgnoreCase("AUDI")){

      if (q.equalsIgnoreCase("BMW")){ // Prints BMW Car Specifications
          System.out.println("Here is the latest BMW Car specifications:");
          System.out.println("Colour: " + V1.getColour());
          System.out.println("Fuel Capacity: " + V1.getFuel() + " Liters");
          System.out.println("Wheel count: " + V1.getWheels());
          System.out.println("Maximum Speed: " + V1.getMaxSpeed() + " KM/H");
          break;
      }else if(q.equalsIgnoreCase("AUDI")){ //Prints AUDI Car Specifications
          System.out.println("Here is the latest AUDI Car specifications:");
          System.out.println("Colour: " + V2.getColour());
          System.out.println("Fuel Capacity: " + V2.getFuel() + " Liters");
          System.out.println("Wheel count: " + V2.getWheels());
          System.out.println("Maximum Speed: " + V2.getMaxSpeed() + " KM/H");
          break;
      }else{
          System.out.println("Sorry that is not a car manufacturer listed      (AUDI/BMW)");
      }
  }   
}
}

您需要询问用户,直到他输入一个正确的单词。所以你必须这样做:

 String q = input.next();
 while(!q.equalsIgnoreCase("BMW") && !q.equalsIgnoreCase("AUDI")){
    q = input.next();
 }

之后,您可以根据用户输入的内容打印出有关奥迪或宝马的信息。

您需要将if和else if语句排除在循环之外,然后重新打印 用户如果不是宝马或奥迪,则在环路外测试字符串

int car=0;
    while(car==0)
    {
        if(q.equalsIgnoreCase("BMW")||q.equalsIgnoreCase("AUDI"))
            car++;
        else
        {
            System.out.println("Sorry that is not a car manufacturer listed           (AUDI/BMW)");
            System.out.println("Choose from Audi or BMW");
            q = input.next();
        }

    }
if (q.equalsIgnoreCase("BMW")){ // Prints BMW Car Specifications
      System.out.println("Here is the latest BMW Car specifications:");
      System.out.println("Colour: " + V1.getColour());
      System.out.println("Fuel Capacity: " + V1.getFuel() + " Liters");
      System.out.println("Wheel count: " + V1.getWheels());
      System.out.println("Maximum Speed: " + V1.getMaxSpeed() + " KM/H");

  }else if(q.equalsIgnoreCase("AUDI")){ //Prints AUDI Car Specifications
      System.out.println("Here is the latest AUDI Car specifications:");
      System.out.println("Colour: " + V2.getColour());
      System.out.println("Fuel Capacity: " + V2.getFuel() + " Liters");
      System.out.println("Wheel count: " + V2.getWheels());
      System.out.println("Maximum Speed: " + V2.getMaxSpeed() + " KM/H");
    }

您从未将新字符串分配给
q
,因此您希望循环如何工作?另外,
break
只要退出循环,就不会从循环中得到任何输入。在循环中变量将如何变化?它将如何结束?哇,伙计们对我放轻松xD,谢谢tho,你能给我一些关于如何修复/改进代码的建议吗,比如编辑代码?因为我知道,但我不知道P.S没有提到还有另一个类文件。你需要
q不是宝马,q不是奥迪,不是
。事实上,任何输入都无法通过该循环。例如,如果输入为
“BMW”
,则它不等于
“AUDI”
,因此循环条件的第二部分为
true
,而整个循环条件为
true
,因此循环继续。@ChaiT.Rex字符串值不能同时包含两个值,例如BMW和AUDI,您所说的&&是什么意思?你的意思是它必须包含宝马和奥迪?不,我的意思是当
循环继续时,它应该既不包含宝马也不包含奥迪。当两者都不是时,您就有了
!宝马&!奥迪
。请参见中的示例,其中使用
|
会导致无限循环(第二个循环永远不会完成)。@ChaiT.Rex此处我编辑了我的答案请参见我的正确答案我添加了逻辑