사용자가 항목 이름 뒤에 공백을 입력하고 항목 비용을 입력 할 수있는 프로그램을 작성해야합니다. 사용자는 항목 이름과 비용을 계속해서 입력해야합니다. 사용자가 입력으로 "STOP"을 입력하면 프로그램이 종료됩니다. 프로그램은 입력 된 모든 항목의 총 비용을 결정해야합니다.
샘플 입력 : 콜라 12.50 파이 11.65 fanta 12.00 커피 13.78 STOP
샘플 출력 : 총 비용 : R49.93
import java.util.Scanner;
import javax.swing.JOptionPane;
String details = "";
double total_cost = 0;
while(!details.equals("STOP")){
details = JOptionPane.showInputDialog("Enter item cost and name");
Scanner sc = new Scanner(details);
while(sc.hasNextDouble()){
double price = sc.nextDouble();
total_cost = total_cost + price;
System.out.println("Total Cost: R" + total_cost);
그러나 내 코드는 여기에 성공적으로 입력 한 코드를 제외하고는 아무것도 출력하지 않습니다. 내가 뭘 잘못하고 있죠? 내 질문에 광택이 부족한 점을 용서하십시오 .Stack Overflow를 처음 사용합니다.
STOP
입력 전체가 아니라 입력의 다음 토큰 과 일치 해야합니다. 또한 요구 사항에 따라 입력은 루프 외부에 있어야합니다. 다음과 같이하십시오.
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String details = JOptionPane.showInputDialog("Enter item cost and name");
Scanner sc = new Scanner(details);
double total_cost = 0;
while (sc.hasNext() && !sc.next().equalsIgnoreCase("STOP")) {
if (sc.hasNextDouble()) {
double price = sc.nextDouble();
total_cost = total_cost + price;
}
}
System.out.println("Total Cost: R" + total_cost);
}
}
Total Cost: R49.93
[최신 정보]
개별 항목을 처리하려면 coke 12.50
다음 pie 11.65
과 같이 할 수 있습니다.
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
double total_cost = 0;
String details;
do {
details = JOptionPane.showInputDialog("Enter item cost and name");
String[] tokens = details.split("\\s+");
if (tokens.length >= 2) {
try {
double price = Double.parseDouble(tokens[1]);
total_cost = total_cost + price;
} catch (IllegalArgumentException e) {
System.out.println("Wrong input");
}
}
} while (!details.equalsIgnoreCase("STOP"));
System.out.println("Total Cost: R" + total_cost);
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다