Je ne sais pas comment obtenir le programme de redémarrer si la mauvaise entrée est donnée.
Je suis nouveau à Java et je ne sais pas comment utiliser efficacement si des déclarations ou des boucles. P>
import java.util.Scanner;
public class TuitionRates
{
public static void main(String[] args)
{
//variables
String name = "";
String studentType = "";
int creditNumber = 0;
double totalTF = 0.00;
double studentACTFee = 4.60;
double parkingFee = 2.00;
double tuition = 180.40;
double capitalFee1 = 0.00;
double capitalFee2 = 21.00;
double perCreditR = 187.00;
double perCreditV = 187.00;
double perCreditD = 187.00;
double perCreditM = 208.00;
double perCreditB = 268.00;
double perCreditO = 387.25;
Scanner input = new Scanner(System.in);
//Asking user for Name
System.out.println("Welcome to the NOVA Tuition and Fees Calculator.");
System.out.println("Please enter your name: ");
name= input.nextLine();
//Ask user to choose option
System.out.println("Please enter the type of student that your are from
the choices below:\n"
+
"R for Virginia Resident\r\n" +
"M for Military Contract Out-of-State\r\n" +
"V for Military Veterans and Dependents\r\n" +
"D for Dual Enrolled\r\n" +
"B for Business Contract Students\r\n" +
"O for Out of State Students\r\n");
studentType = input.nextLine();
if (studentType.equalsIgnoreCase("R"))
{
System.out.println("Please enter the number of credits that you are
taking:");
creditNumber = input.nextInt();
if (creditNumber <= 18)
{
System.out.println("Tuition and fees report for " + name);
System.out.println("Tuition: "+ tuition);
System.out.println( "Capital Fee: \t"+ capitalFee1);
System.out.println( "Student Activities Fee: \t "+ studentACTFee);
System.out.println( "Parking Infrastructure Fee: \t " + parkingFee);
System.out.println("Tuition & Fees Per Credit: " + perCreditR);
System.out.println("X Number of Credits: " + creditNumber);
totalTF = creditNumber * perCreditR;
System.out.println("Total Tuition and Fees: \t" + totalTF);
System.out.println("Bodly NOVA");
}
else {System.out.println("Please re-enter credit Number ");}
}
4 Réponses :
Vous pouvez essayer d'envelopper votre si code> instruction dans un DO-WHI code> boucle: if (studentType.equalsIgnoreCase("R"))
{
do{
System.out.println("Please enter the number of credits that you are taking:");
creditNumber = input.nextInt();
if (creditNumber <= 18)
{
System.out.println("Tuition and fees report for " + name);
System.out.println("Tuition: "+ tuition);
System.out.println( "Capital Fee: \t"+ capitalFee1);
System.out.println( "Student Activities Fee: \t "+ studentACTFee);
System.out.println( "Parking Infrastructure Fee: \t " + parkingFee);
System.out.println("Tuition & Fees Per Credit: " + perCreditR);
System.out.println("X Number of Credits: " + creditNumber);
totalTF = creditNumber * perCreditR;
System.out.println("Total Tuition and Fees: \t" + totalTF);
System.out.println("Bodly NOVA");
}
else {System.out.println("Please re-enter credit Number ");}
}while(creditNumber > 18);
}
do-tandis que code> construct peut être efficace ici. if (studentType.equalsIgnoreCase("R"))
{
do {
System.out.println("Please enter the number of credits that you are
taking:");
creditNumber = input.nextInt();
if(creditNumber > 18) System.out.println("Too many credits");
while(creditNumber > 18);
}
Je ferais quelque chose comme ceci:
if (studentType.equalsIgnoreCase("R"))
{
System.out.println("Please enter the number of credits that you are
taking:");
creditNumber = input.nextInt();
while(creditNumber > 18)
{
System.out.println("Please re-enter the number of credits that you are
taking:");
creditNumber = input.nextInt();
}
System.out.println("Tuition and fees report for " + name);
System.out.println("Tuition: "+ tuition);
System.out.println( "Capital Fee: \t"+ capitalFee1);
System.out.println( "Student Activities Fee: \t "+ studentACTFee);
System.out.println( "Parking Infrastructure Fee: \t " + parkingFee);
System.out.println("Tuition & Fees Per Credit: " + perCreditR);
System.out.println("X Number of Credits: " + creditNumber);
totalTF = creditNumber * perCreditR;
System.out.println("Total Tuition and Fees: \t" + totalTF);
System.out.println("Bodly NOVA");
}
Eh bien, je pourrais vous conseiller de repenser la conception. Mais ce n'était pas ta question - non? Donc, si vous voulez vraiment, ce que vous avez demandé, voici une pause (une exception "Pauvre Man"):
exitpoint:
while( ){
// code....
for(;;){
//...
break exitpoint;
}
}
Oui, je sais que j'ai écrit que cela n'était pas efficace, je suis nouveau à Java. J'apprécie l'aide.
pas de transpiration! Je marchais simplement que mon exemple n'est pas nécessairement une recommandation pour concevoir un programme de cette manière. (Les programmes ont tendance à être difficiles à lire si on saute autour). Mais tout peut avoir son utilisation ...
tandis que (vrai) code>?