#java #arrays #loops #for-loop #if-statement
#java #массивы #циклы #для цикла #if-statement
Вопрос:
String[][] array = {{"Checkup", "60"},
{"Repairing tooth", "150"},
{"Cleaning", "30"}}; // Menu of treatments
String[] array2 = new String [10]; // New array that saves up to 10 elements(treatments)
int cost = 0;
int treatment = 0;
Scanner input = new Scanner(System.in);
System.out.println("Control" " " "1");
System.out.println("Repair tooth:" " " "2");
System.out.println("Cleaning:" " " "3");
int n = array.length;
for (int i=0; i<n; i ) {
for (int j=0; i<n ; j ) {
System.out.println();
treatment = input.nextInt();
if (treatment==1) {
cost = Integer.parseInt(array[i][1]);
System.out.print("Total cost so far: " cost);
}
if (treatment==2) {
cost = Integer.parseInt(array[i 1][1]);
System.out.print("Total cost so far: " cost);
}
if (treatment==3) {
cost = Integer.parseInt(array[i 2][1]);
System.out.print("Total cost so far: " cost);
}
}
}
Как мне двигаться дальше? Я понял, что мне нужно сохранить входные данные в новом массиве и выйти из цикла после 10 обработок или добавить возможность для пользователя распечатать квитанцию, когда они будут сделаны.
В квитанции необходимо распечатать все выбранные процедуры вместе со стоимостью для каждого отдельного лечения. Мне также нужно будет добавить переменную, чтобы добавить общую сумму для всех выбранных обработок.
Ответ №1:
Вот что вы пытаетесь сделать, поскольку обработки фиксированы, поэтому вы можете просто индексировать их как 0, 1, 2. Одна вещь, которую вы можете сделать, это создать hashmap, в котором вы можете сохранять имя лечения и его стоимость (String,int) каждый раз, когда пользователь хочет изменитьвведите. Посмотрите на приведенный ниже код
import java.util.*;
import java.util.HashMap;
public class treatment {
public static void main(String []args) {
String[][] array = {{"Checkup", "60"},
{"Repairing tooth", "150"},
{"Cleaning", "30"}}; // Menu of treatments
// New array that saves up to 10 elements(treatments)
HashMap<String, Integer> treat = new HashMap<String, Integer>();
int cost = 0;
int treatment = 0;
Scanner input = new Scanner(System.in);
int n = array.length;
int i =0;
char c = '';
do {
System.out.println("nnControl" " " "1");
System.out.println("Repair tooth:" " " "2");
System.out.println("Cleaning:" " " "3");
System.out.println("Exit: " "-1");
System.out.println();
System.out.print("Enter treatment value (1, 2, 3): ");
treatment = input.nextInt();
if (treatment==1){
i = 0;
cost = Integer.parseInt(array[0][1]);
System.out.println("nTotal cost so far: " cost);
}
else if (treatment==2) {
i = 1;
cost = Integer.parseInt(array[1][1]);
System.out.println("nTotal cost so far: " cost);
}
else if (treatment==3) {
i = 2;
cost = Integer.parseInt(array[2][1]);
System.out.println("nTotal cost so far: " cost);
}
treat.put(array[i][0], cost);
} while (treatment != -1);
System.out.println("Total COst is : " cost);
System.out.println("The treatements you opt for are:n");
System.out.println(treat);
System.out.println("n");
}
}
Комментарии:
1. Спасибо! Мне не разрешено использовать HashMap для этого, но я думаю, что смогу продолжить с аналогичным решением 🙂
2. Я рад, что это помогло.