2017-04-21 1 views
-1
double urWallet, prOfItems; 
    double sum=0; 
    String nmOfItems; 
    System.out.print("How much money do you have? "); 
    urWallet = m105.nextDouble(); 
    System.out.println("Pleas, insert the name of the items in the invoice(in one word): "); 
    System.out.println("Enter word \"stop\"as the name of product to finish your input:"); 
     while(!nmOfItems.equals("stop")); 
{ 
    nmOfItems = m105.next(); 
     prOfItems = m105.nextDouble(); 
    sum = (double)sum + prOfItems; 
    } 
     if (sum > urWallet) 
{ 
      System.out.println("You don't have much money"); 
    } 
else 
    System.out.println("You have much money"); 
    System.out.printf("%s is the item with the minimum price (wich is %.3f SAR) \n ",nmOfItems , sum); 

so sollte so sein?tun, während mit String und Tow Anweisung Probleme

aber das wird nicht akzeptiert. Es zeigt, dass nee initialisiert werden muss

was soll ich tun?

+1

können Sie eine if-Zustand versetzt und dann brechen. – yogidilip

+0

Was ist der Sinn von 'nmOfItems' außer dem Stoppen? – shmosel

+0

Wenn der Benutzer den Code stoppen stoppen Sie die Schleife, drucken Sie den Preis und summieren –

Antwort

0

Wie vorgeschlagen von @yogidilip

do{ 
nmOfItems = m105.next(); 
if(nmOfItems.equals("stop")) { 
    break; 
}   
prOfItems = m105.nextDouble();  
sum = (double)sum + prOfItems; 
} 
while(true); 
+0

kommt es funktioniert Vielen Dank –

+0

Könnten Sie bitte erklären, die Schritte, die während (wahr); Ich habe es nicht vor –

+0

verwenden, wenn diese Antwort Ihnen hilft, dann sollten Sie es akzeptieren –

-2

Nur sollten Sie während verwenden nicht zu tun, während

Denn während mindestens eine Iteration tun muss und es überprüfen Sie vor, während

Ihr Code sein sollte:

nmOfItems = m105.next(); 
while(!nmOfItems.equals("stop")) 
{ 
     prOfItems = m105.nextDouble();  
     sum = (double)sum + prOfItems; 
} 
+1

Lesen Sie die Frage genauer. – shmosel

+0

Sorry, siehe Bearbeiten. –

+0

Jetzt ist es eine Endlosschleife. – shmosel

0

Überprüfen Sie den Zustand direkt nach Ihrer Aktion und brechen Sie sofort nach dem Lesen von der Konsole aus der Schleife aus.

do 
{ 
    nmOfItems = m105.next(); 
    if(nmOfItems.equalsIgnoreCase("stop")) 
    { 
     break; 
    }   
    prOfItems = m105.nextDouble();  
    sum = (double)sum + prOfItems; 
} 
while(true); 

oder

while (true) 
{ 
    nmOfItems = m105.next(); 
    if(nmOfItems.equalsIgnoreCase("stop")) 
    { 
     // If user starts the program by error, or user wants to discontinue process 
     break; 
    }   
    prOfItems = m105.nextDouble();  
    sum = (double)sum + prOfItems; 
}