#java #integer
#java #целое
Вопрос:
Редактировать вопрос В вопросе предлагается разрешить пользователю вводить целые числа в диапазоне от 1 до 999, используя JOptionPane на JAVA; и отображать эти целые числа в словах. Например, если пользователь вводит 13, программа должна отображать «Тринадцать» и цикл, чтобы попросить пользователя ввести другие целые числа. Если пользователь вводит 0, программа должна завершиться. Если пользователь вводит целое число больше 999, программа должна отобразить сообщение об ошибке и попросить пользователя ввести целое число меньше 999. Вот код, который я пробовал. Но он не может быть функциональным. Любая помощь приветствуется.
import javax.swing.JOptionPane;
public class practice_9_1 {
public static void main(String[] args) {
int number;
String input_string= JOptionPane.showInputDialog("Please enter a number <1000 OR 0 to exit: ");
number = Integer.parseInt(input_string);
while(number!=0){
if(number>0 amp;amp; number<=999){
if(number < 0){
JOptionPane.showMessageDialog(null, "Please enter positive number greater than 0");
} else {
// System.out.println("NUMBER AFTER CONVERSION:t");
numberToWord(((number / 100) % 10), " HUNDRED");
numberToWord((number % 100), " ");
}
} else{
input_string= JOptionPane.showInputDialog("..DATA ERROR.. "
"nplease enter a number <1000");
number = Integer.parseInt(input_string);
}
}
}
public static void numberToWord(int num, String val) {
String ones[] = {" ", " ONE", " TWO", " THREE", " FOUR", " FIVE", " SIX", " SEVEN", " EIGHT", " NINE", " TEN", " ELEVEN", " TWELVE", " THIRTEEN", " FOURTEEN", " FIFTEEN", " SIXTEEN", " SEVENTEEN", " EIGHTEEN", " NINETEEN"
};
String tens[] = {" ", " ", " TWENTY", " THIRTY", " FOURTY", " FIFTY", " SIXTY", " SEVENTY", " EIGHTY", " NINETY"};
if (num > 19) {
JOptionPane.showMessageDialog(null,tens[num / 10] " " ones[num % 10]);
} else {
JOptionPane.showMessageDialog(null, ones[num]);
}
// if (num > 0) {
// JOptionPane.showMessageDialog(null,val);
// }
}
}
Ответ №1:
Вы передаете напоминание и частное в отдельном вызове метода, вместо этого добавьте новый параметр в метод numberToword и вызовите с помощью
numberToWord(((число / 100) % 10), «СТО», (число % 100));
public static void numberToWord(int num, String val, int num2) {
String ones[] = { " ", " ONE", " TWO", " THREE", " FOUR", " FIVE", " SIX", " SEVEN", " EIGHT", " NINE", " TEN",
" ELEVEN", " TWELVE", " THIRTEEN", " FOURTEEN", " FIFTEEN", " SIXTEEN", " SEVENTEEN", " EIGHTEEN",
" NINETEEN" };
String tens[] = { " ", " ", " TWENTY", " THIRTY", " FOURTY", " FIFTY", " SIXTY", " SEVENTY", " EIGHTY",
" NINETY" };
if (num2 > 19) {
JOptionPane.showMessageDialog(null, ones[num] val tens[num2 / 10] " " ones[num2 % 10]);
} else {
JOptionPane.showMessageDialog(null, ones[num] val);
}
}