#java #loops #for-loop
#java #циклы #цикл for
Вопрос:
Я очень новичок в разработке и пытаюсь написать небольшую программу, но, похоже, у меня не получается заставить этот цикл for работать:
public class test {
public static void main(String[] args){
double desejadaT5 = Console.userInput("What is the desejada value?");
for (double i = desejadaT5; i <= 0; i = i * 0.367)
System.out.println("value of i is " i);
}
}
Вот класс, Console
который я создал для получения пользовательских входных данных.
import java.util.Scanner;
public class Console {
public static double userInput(String prompt){
Scanner scanner = new Scanner(System.in);
double value;
System.out.println(prompt);
value = scanner.nextDouble();
return value;
}
}
Кто-нибудь может сказать мне, почему это не дает мне никакого результата? Я ожидал, что когда я введу, например, 333 в desejadaT5, я получу вывод типа: 333, 122, 44, 16, 5, 1.
Спасибо за помощь.
Комментарии:
1. Возможно, условие изначально равно false (если значение, введенное в desejadaT5, больше 0). Если значение больше нуля, то вы, вероятно, хотите, чтобы условие считывалось i >= 0; И это предполагает, что i = i * 0.367 постепенно уменьшит значение i до 0
2. Что такое
Console
?System.Console
не имеетuserInput()
элемента.3. Какой ввод вы пытаетесь?
4. Запустите свою программу и введите значение<0, например -1.5, когда она ожидает ввода пользователем.
5. Просто измените условие на i >=1;
Ответ №1:
Если вы вводите входные данные как 333, то ваше условие цикла завершается ошибкой (i<=0), поскольку 333 не меньше или равно 0, и это выбрасывает вас из цикла
Комментарии:
1. о, спасибо, мистер Яш, теперь я понимаю. Большое спасибо :).
2. 1 но есть одна придирка: это не «выбрасывает вас из цикла». Тело цикла никогда не вводится, поскольку оно не проходит начальный тест.
3. Да, абсолютно. 🙂
Ответ №2:
Просто используйте scanner, как все.
Scanner sc = new Scanner(System.in);
desejadaT5 = sc.nextDouble();