2016-09-28 5 views
1
public static char getChoice(char choice) { 
    System.out.println("\nTake or stop? (t/s): "); 
    choice = sc.next() 
     .charAt(0); 
    if (choice == 't') { 
     System.out.print("Player Took"); 
     choice = 't'; 

    } else if (choice == 's') { 
     System.out.println("Player didnt take"); 
     choice = 's'; 

    } 
    return choice; 
    //return answer; 
} 

Dies ist der Teil in dem Haupt das ist, nennt esMethode gibt nicht den richtigen Wert (Java)

 //Checking if players score is 21 when the game begins 
    if(ptotal == 21) 
    { 
     System.out.print("\nPlayer wins!"); 
    } 
    //Checking if the computers score is 21 when the game 
    else if(ctotal == 21) 
    { 
     System.out.print("\nComputer wins!"); 
    } 
    //Checking if both scores are 21 which would be a tie 
    else if(ctotal == 21 && ptotal == 21) 
    { 
     System.out.print("\nTie!"); 
    } 
    //If none above is true it will proceed to the loop 
    else 
    { 
     //getChoice(answer); 
     while(ptotal < 21 && answer == 't')//Loop conditions 
     { 
      getChoice(answer); 
      //Prompting user if they would like to take or stop 
      /*System.out.println(); 
      System.out.print("Take or stop? (t/s): "); 
      answer = sc.next().charAt(0); 
      System.out.println("");*/ 


      //Checking if the input is 't' 
      if(answer == 't') 
      { 
       //If true another card will be generated and added to the total value 
       System.out.print("\nPlayer draws: "); 
       pCard = getCard(); 
       showCard(pCard); 
       ptotal += cardValue(pCard); 

      } 
      //Checking if input is 's' 
      else if(answer == 's') 
      { 
       System.out.println("Player Stops"); 
      } 
     } 

dies soll den Benutzer für ein Zeichen Eingabe stellen und dann ein bestimmtes Zeichen zurückgeben abhängig von der if-Anweisung, aber jedes Mal, wenn ich es aus dem main zurückgebe, wird es diese Strings nicht anzeigen, aber es wird keine Wahl auf das richtige char gesetzt. Bitte helfen.

+0

Wenn 'Wahl'' t' oder 's' ist, warum müssen Sie es demselben Ding neu zuordnen? Es ist auch unpraktisch, in dieser Situation einen Char zu übergeben. – Li357

+0

was soll ich dann tun, weil alles, was ich tun möchte, ist, die Eingabe zu bekommen und dann, wenn in der Hauptverwendung dieser Eingang entsprechend aufgerufen wird – Noobgrammer

+0

sehe ich kein Problem mit dem Code hier. poste den Code, der 'getChoice() 'Methode anruft –

Antwort

1
//always post an MCVE 
//see http://stackoverflow.com/help/mcve 
import java.util.Scanner; 

public class Test{ 

    public static void main(String[] args){ 

     char c = getChoice(); 
     System.out.println("returned value is "+ c); 
    } 

    //why pass a value choise if you read it from user ? 
    public static char getChoice(/*char choice*/) 
    { 
     System.out.println("\nTake or stop? (t/s): "); 

     Scanner sc = new Scanner(System.in); 
     char choice = sc.next().charAt(0); 
     if(choice == 't') 
     { 
      System.out.println("Player Took"); 
      // choice is already equal to `t`. This is not needed 
      // choice = 't'; 

     } 

     else if(choice == 's') 
     { 
      System.out.println("Player didnt take"); 
      // choice is already equal to `s`. This is not needed 
      choice = 's'; 

     } 
     return choice; 
    } 
} 
Verwandte Themen