我目前工作在我的任務叫車,並且它要求我做的是設置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。具體來說,包含_「所以我甚至不知道我應該如何處理這個問題」的問題被認爲是無關緊要的。 –