2017-03-04 89 views
-2

我目前工作在我的任務叫車,並且它要求我做的是設置6層的方法,其是randomizePositionrandomizeColorreportStateignitionSwitchmoveHorizontally,並moveVertically關於我的點火開關問題?

我認爲我已經完成了randomizePositionrandomizeColorreportState,但是ignitionSwitch存在這個問題。我將ignitionStat的值設置爲false(因爲汽車已關閉),並且我製作了ignitionSwitch方法,它採用布爾型ignitionStat並使其返回相反的值。

我試圖建立的代碼的方式在那裏我將成立另一個字符串ignitionStatus,其價值將是要麼"ON"(如果ignitionSwitch返回TRUE)和"OFF"的其他情況。但儘管嘗試,我總是看到ignitionStatus將始終ON即使ignitionStatus返回false

所以我什至不知道我應該如何處理這個問題,我認爲這是非常重要的部分,因爲我需要點火狀態來實際創建方法moveHorizo​​ntally和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); 
} 
} 
+1

牆上沒有段落的文字真的很難閱讀。我在一定程度上編輯了你的文字,但它仍然處於邊緣線外。你需要學習使用一個調試器,並一次一行地瀏覽代碼,看看代碼_actually_的功能。請訪問[幫助]並閱讀[問]以瞭解如何有效地使用StackOverflow。具體來說,包含_「所以我甚至不知道我應該如何處理這個問題」的問題被認爲是無關緊要的。 –

回答

-1

發現此問題。您的退貨聲明ignitionStat =! ignitionStat;僅修改傳入的變量。將其更改爲:

public static boolean ignitionSwitch() 
{ 
    return ignitionStat = !ignitionStat; 
} 
+0

感謝您的快速回答。但是我的任務要求點火開關方法只需要點火狀態值,並且總是返回相反的值。然而,我意識到還有更多的東西,那就是它總是迴歸真實,而不是返回相反的......我真的失去了 – Harry

+0

@Harry嘗試實施這些新的變化。 – Peter

+0

想得到我收到的downvote的解釋嗎? – Peter