Utilisation d'une boucle sentinel While en Java pour aller ajouter des options de forfait de téléphone portable


Je suis vraiment coincé sur celui-ci. Je dois créer un menu d'add-plan de plan de téléphone portable. Je dois ensuite écrire un segment de code java qui affichera un menu de ces options et une boucle pour permettre à l'utilisateur de choisir les options souhaitées jusqu'à ce que l'utilisateur entre un -1. C'est ce que j'ai jusqu'à présent:

import java.util.Scanner;


public class CellPhone {

public static void main(String[] args) {
    //new array
    String [] plans = new String[4];

    plans[0] = "a. 200 or less text messages a month: $5.00";
    plans[1] = "b. Additional line: $9.99";
    plans[2] = "c. International calling: $3.99";
    plans[3] = "d. Early nights and weekends: $16.99";

    System.out.println("Here are your plan options: ");

    //outputs the contents of the array
    for(int i = 0; i < 4; i++) {
        System.out.println(plans[i]);
    }

    // Sentinel loop for adding options
    final String SENTINEL = "-1";
    String choices = plans[0];
    Scanner scanner = new Scanner(System.in);
    System.out.println("What would you like to add to your plan (options are a,b,c, or d. Enter -1 when you are finished):  ");
    String yourChoice = scanner.nextLine();
    while (yourChoice != SENTINEL) {




  }

 }

} 

Comment puis-je exactement faire en sorte que cela se produise et que dois-je mettre dans la boucle while? Merci!

Author: Alexander Lerma, 2014-10-12

1 answers

Vous pourriez faire quelque chose comme ça.

while(true) {
    System.out.println("What would you like to add to your plan (options are a,b,c, or d. Enter -1 when you are finished):  ");
    String yourChoice = scanner.nextLine();
    if(yourChoice.equals(SENTINEL))
        return;
}

Ou si vous devez utiliser sentinel:

do {
        System.out.println("What would you like to add to your plan (options are a,b,c, or d. Enter -1 when you are finished):  ");
        yourChoice = scanner.nextLine();
    } while (!yourChoice.equals(SENTINEL));

C'est une façon d'obtenir le prix total:

double price = 0.0;
do {
    System.out.println("What would you like to add to your plan (options are a,b,c, or d. Enter -1 when you are finished):  ");
    yourChoice = scanner.nextLine();
    switch (yourChoice) {
        case "a":
            price += Double.parseDouble(plans[0].substring(plans[0].length()-4, plans[0].length()));
            break;
        case "b":
            price += Double.parseDouble(plans[1].substring(plans[1].length()-4, plans[1].length()));
            break;
        case "c":
            price += Double.parseDouble(plans[2].substring(plans[2].length()-4, plans[2].length()));
            break;
        case "d":
            price += Double.parseDouble(plans[3].substring(plans[3].length()-5, plans[3].length()));
            break;
    }
} while (!yourChoice.equals(SENTINEL));

System.out.println("Total price: " + price);
 0
Author: NerosE, 2014-10-13 20:17:45