我目前工作在我的任务叫车,并且它要求我做的是设置6层的方法,其是randomizePosition
,randomizeColor
,reportState
,ignitionSwitch
,moveHorizontally
,并moveVertically
。关于我的点火开关问题?
我认为我已经完成了randomizePosition
和randomizeColor
和reportState
,但是ignitionSwitch
存在这个问题。我将ignitionStat
的值设置为false(因为汽车已关闭),并且我制作了ignitionSwitch
方法,它采用布尔型ignitionStat
并使其返回相反的值。
我试图建立的代码的方式在那里我将成立另一个字符串ignitionStatus
,其价值将是要么"ON"
(如果ignitionSwitch
返回TRUE)和"OFF"
的其他情况。但尽管尝试,我总是看到ignitionStatus
将始终ON
即使ignitionStatus
返回false
。
所以我什至不知道我应该如何处理这个问题,我认为这是非常重要的部分,因为我需要点火状态来实际创建方法moveHorizontally和moveVertically。
import java.util.Scanner;
import java.util.Random;
public class testcar {
public static void main(String[] args) {
int repeat = 1;
boolean ignitionStat = false;
while (repeat == 1) {
System.out.println("What would you like to do?");
System.out.println("1: turn the ignition on/off");
System.out.println("2: change the position of car");
System.out.println("q: quit this program ");
Scanner sc = new Scanner(System.in);
Scanner ex = new Scanner(System.in);
String i = sc.nextLine();
switch (i) {
case "1":
System.out.println("You chose to turn on/off the ignition");
ignitionSwitch(ignitionStat);
System.out.println("CAR INFORMATION");
System.out.println("IGNITION STATUS: ");
reportState();
repeat = 1;
break;
case "2":
System.out.println("THIS WILL BE CHANGE POSITION METHOD");
repeat = 2;
break;
case "q":
System.out.println("You choose to quit");
repeat = 0;
break;
default:
System.out.print("INVALID OPTION");
break;
}
}
while (repeat == 2){
System.out.println ("In which direction do you want to move the car? ");
Scanner hv= new Scanner (System.in);
String z = hv.nextLine();
switch (z) {
case "h":
System.out.println("You will move the car horizontally!");
repeat = 0;
break;
case "v":
System.out.println("You will move the car vertically!");
repeat = 0;
break;
default:
System.out.println("Invalid Option!");
repeat = 2;
break;
}
}
}
public static boolean ignitionSwitch(boolean ignitionStat){
return ignitionStat =! ignitionStat;
}
public static void reportState(){
int positionX = randomizePosition();
int positionY = randomizePosition();
char carColor = assignColor();
System.out.println ("CAR INFORMATION");
System.out.println ("Color : " + carColor);
System.out.println ("Location:" + "(" +positionX +","+positionY +")");
String grid = "--------------------";
for (int i =1; i<21; i++){
if (i != positionY){
System.out.println(grid);
}
else if (i == positionY){
String newgrid = grid.substring(0,positionX-1) + carColor + grid.substring(0,20-positionX);
System.out.println(newgrid);
}
}
}
public static int randomizePosition() {
Random rand = new Random();
int position = rand.nextInt(20) + 1;
return position;
}
public static char assignColor() {
Random rand = new Random();
int colorNum = rand.nextInt(5) + 1;
char colorStr;
switch (colorNum) {
case 1: colorStr = 'G';
break;
case 2: colorStr = 'B';
break;
case 3: colorStr = 'W';
break;
case 4: colorStr = 'S';
break;
default : colorStr = 'R';
break;
}
return (colorStr);
}
}
墙上没有段落的文字真的很难阅读。我在一定程度上编辑了你的文字,但它仍然处于边缘线外。你需要学习使用一个调试器,并一次一行地浏览代码,看看代码_actually_的功能。请访问[帮助]并阅读[问]以了解如何有效地使用StackOverflow。具体来说,包含_“所以我甚至不知道我应该如何处理这个问题”的问题被认为是无关紧要的。 –