Declaring String Variables within a while loop without it looping all throughout - java

后端 未结 2 442
庸人自扰
庸人自扰 2021-01-25 06:26

I am stuck at a part where I am supposed to declare a string variable called "phrase", where it shouldn\'t loop, all the way through.

to give you an idea my tas

2条回答
  •  伪装坚强ぢ
    2021-01-25 06:48

    1. You can reuse the same variables for individual points i.e. pointsW and pointsO because you do not want to retain their values till the end where you are publishing the results. The same is the case with the variable for the loop condition i.e. go and the variable used for inputting win/loss i.e. letter.
    2. You will need arrays or different variables for storing total points, countings, and team name.

      import java.util.Scanner;
      
      public class Standings {
          public static void main(String[] args) {
              Scanner keyboard = new Scanner(System.in);
              int option = keyboard.nextInt();
              int pointsW = 0;
              int pointsO = 0;
              String letter;
              boolean go = true;
              if (option == 2) {
                  // Variables for total points, counting, and name for the first team
                  int playedGamesTeamOne = 0;
                  int teamOnePoints = 0;
                  String teamOneName = keyboard.next();
                  while (go) {
                      letter = keyboard.next();
                      if (letter.equals("W")) {
                          pointsW += 2;
                      } else if (letter.equals("O")) {
                          pointsO++;
                      }
                      playedGamesTeamOne++;
                      if (letter.equals("N")) {
                          teamOnePoints = pointsW + pointsO;
                          playedGamesTeamOne--;
                          go = false;
                      }
                  }
      
                  // Reset common variables
                  go = true;
                  pointsW = 0;
                  pointsO = 0;
      
                  // Variables for total points, counting, and name for the second team
                  int playedGamesTeamTwo = 0;
                  int teamTwoPoints = 0;
                  String teamTwoName = keyboard.next();
                  while (go) {
                      letter = keyboard.next();
                      if (letter.equals("W")) {
                          pointsW += 2;
                      } else if (letter.equals("O")) {
                          pointsO++;
                      }
                      playedGamesTeamTwo++;
                      if (letter.equals("Q")) {
                          teamTwoPoints = pointsW + pointsO;
                          playedGamesTeamTwo--;
                          go = false;
                      }
                  }
      
                  System.out.println(teamOneName + " has played " + playedGamesTeamOne + " games and has earned "
                          + teamOnePoints + " points");
                  System.out.println(teamTwoName + " has played " + playedGamesTeamTwo + " games and has earned "
                          + teamTwoPoints + " points");
                  if (teamOnePoints > teamTwoPoints) {
                      System.out
                              .println(teamOneName + " is in first place by " + (teamOnePoints - teamTwoPoints) + " points");
                  } else {
                      System.out
                              .println(teamTwoName + " is in first place by " + (teamTwoPoints - teamOnePoints) + " points");
                  }
              }
          }
      }
      

      A sample run:

      2
      Toronto
      W
      W
      L
      O
      W
      O
      W
      N
      Montreal 
      L
      L
      O
      L
      L
      W
      L
      L
      Q
      Toronto has played 7 games and has earned 10 points
      Montreal has played 8 games and has earned 3 points
      Toronto is in first place by 7 points
      

提交回复
热议问题