Я новичок в Java. Я пытаюсь сделать упражнение.Запросы сканера вводят дважды
P3.3 Написать программу, которая считывает целое число и печатает сколько цифр число имеет, путем проверки, является ли число ≥ 10, ≥ 100, и так дальше. (Предположим, что все целые числа меньше десяти миллиардов.) Если номер отрицательный, сначала умножьте его на -1.
Проблема в следующем: я вижу, что мне нужно ввести дважды ввод, прежде чем я получу выход. Я знаю, что он должен делать с кодом:
if(in.hasNextInt()){
int number = in.nextInt();
}
Но что я должен изменить в этом случае есть только один вход, а не 2? Спасибо заранее.
package week2;
import java.util.Scanner;
public class P3_3_Digits {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Voer een getal in: ");
int number = in.nextInt();
if(in.hasNextInt()){
in.close();
if(number < 0){
number = number * -1;
if(number >= 10 && number < 100){
System.out.println("Het getal -" + number + " heeft 2 digits.");
}
else if(number >= 100 && number < 1000){
System.out.println("Het getal -" + number + " heeft 3 digits.");
}
else if(number >= 1000 && number < 10000){
System.out.println("Het getal -" + number + " heeft 4 digits.");
}
else if(number >= 10000 && number < 100000){
System.out.println("Het getal -" + number + " heeft 5 digits.");
}
else if(number >= 100000 && number < 1000000){
System.out.println("Het getal -" + number + " heeft 6 digits.");
}
else if(number >= 1000000 && number < 10000000){
System.out.println("Het getal -" + number + " heeft 7 digits.");
}
else if(number >= 10000000 && number < 100000000){
System.out.println("Het getal -" + number + " heeft 8 digits.");
}
}
else {
if(number >= 10 && number < 100){
System.out.println("Het getal " + number + " heeft 2 digits.");
}
else if(number >= 100 && number < 1000){
System.out.println("Het getal " + number + " heeft 3 digits.");
}
else if(number >= 1000 && number < 10000){
System.out.println("Het getal " + number + " heeft 4 digits.");
}
else if(number >= 10000 && number < 100000){
System.out.println("Het getal " + number + " heeft 5 digits.");
}
else if(number >= 100000 && number < 1000000){
System.out.println("Het getal " + number + " heeft 6 digits.");
}
else if(number >= 1000000 && number < 10000000){
System.out.println("Het getal " + number + " heeft 7 digits.");
}
else if(number >= 10000000 && number < 100000000){
System.out.println("Het getal " + number + " heeft 8 digits.");
}
}
}
else { System.out.println(" Onjuiste invoer. Voer een getal in.");
}
}
}
Маленький трюк для подсчета цифр Int длина = (INT) (Math.log10 (п) +1); – Lemonov
thnx за этот трюк! – Noor
удаленный несвязанный тег, отформатированная цитата –