Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91

Цикл while, do-while. Выводить элементы заново, если булевое значение false

07.08.2015, 12:00. Показов 1287. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс Driver:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
public class Driver {
 
    {
        idGenerator++;
    }
    private static int idGenerator = 0;
    private int id = idGenerator;
    private boolean ready_driver;
    private String driver_name;
    private String mobile;
    private Car car;
 
    public Driver (boolean ready_driver, String driver_name, String mobile){
        this.ready_driver = ready_driver;
        this.driver_name = driver_name;
        this.mobile = mobile;
    }
 
    public boolean isReady_driver (){
        return ready_driver;
    }
 
    public String getDriver_name (){
        return driver_name;
    }
 
    public String getMobile (){
        return mobile;
    }
 
    public void setReady_driver (boolean ready_driver){
            this.ready_driver = ready_driver;
        }
 
    public void setDriver_name (String driver_name){
        this.driver_name = driver_name;
    }
 
    public void setMobile (String mobile){
        this.mobile = mobile;
    }
 
    public static Driver pickDriver(){
        System.out.println("Please, select a driver from list: ");
        System.out.printf("%2s %19s %19s", "Id", "Driver", "Mobile");
        System.out.printf("\n");
        Depot.arrayDrivers();
        Scanner scanner = new Scanner(System.in);
        int d = scanner.nextInt();
 
        switch (d) {
            case 1:
                Depot.driver = Depot.d1;
                break;
            case 2:
                Depot.driver = Depot.d2;
                break;
            case 3:
                Depot.driver = Depot.d3;
                break;
            case 4:
                Depot.driver = Depot.d4;
                break;
            case 5:
                Depot.driver = Depot.d5;
                break;
        }
        return Depot.driver;
    }
 
    public void repair () {
            if (isReady_driver() == false) {
                System.out.println("The driver " + getDriver_name() + " is not ready. The driver is removed today.");
            } else {
                System.out.println("Your pick: " + driver_name + ". Mobile phone: " + mobile);
            }
    }
 
    public String toString(){
            return String.format("%2s %19s %19s", id, driver_name, mobile);
    }
}
Есть класс, где находятся элементы наших водителей:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Depot {
    public static Driver driver;
    protected static Driver d1 = new Driver(true, "Vasya", "0965476005");
    protected static Driver d2 = new Driver(false, "Igor", "0965476006");
    protected static Driver d3 = new Driver(false, "Anton", "0965476007");
    protected static Driver d4 = new Driver(true, "Valeriu", "0965476009");
    protected static Driver d5 = new Driver(true, "Ruslan", "0965476010");
 
    public static void arrayDrivers() {
        Driver driver[] = {d1, d2, d3, d4, d5};
        for (Driver d : driver) {
            System.out.println(d);
        }
    }
}
Есть класс, проверяющий входящее значение.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Dispatcher {
 
    private String disp_name;
 
    public Dispatcher(String disp_name){
        this.disp_name = disp_name;
    }
 
    public String getDisp_name (){
        return disp_name;
    }
 
    public void setDisp_name (String disp_name){
        this.disp_name = disp_name;
    }
 
    public String toString (){
        return getDisp_name();
    }
 
    public static void sendDriver (Driver driver) {
    driver.repair();
    }
}
Ну и соотвественно в Main мы все выдим.

Java
1
2
3
4
5
6
7
public class Application {
    public static void main(String[] args) {
 
        Driver newDriver = Driver.pickDriver();
        Dispatcher.sendDriver(newDriver);
}
}
У меня метод pickDriver - это свитч.
sendDriver проверяет входящее значение от свитча.
как мне сделать так, если поле водителя isReady_driver = false, он мне этот выводил заново массив водителей с предложением выбрать другого. и цикл заканчивался бы только тогда, когда я выбирал водителя со значением поля isReady_driver = true ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2015, 12:00
Ответы с готовыми решениями:

Составьте программу, которая будет выводить значение True, если указанное высказывание является истинным, и False в противном случае
Составьте программу в TURBO C, которая будет выводить значение True, если указанное высказывание является истинным, и False в противном...

Цикл: P присвоить значение true, если целое n(n > 1) - простое число, иначе - false
логической переменной P присвоить значение true, если целое n(n>1)- простое число, иначе присвоить значение false....скажите пожалуйста как...

Переменной присвоить значение true, если элементы массива Х упорядочены строго по убыванию, и значение false иначе
Здравствуйте, помогите написать программу Дaн вeктoр X(70). Пeрeмeннoй 1 присвoить знaчeниe t_____, eсли элeмeнты мaссивa Х упoрядoчeны...

5
34 / 34 / 35
Регистрация: 21.04.2015
Сообщений: 74
07.08.2015, 13:23
Лучший ответ Сообщение было отмечено Duke_Nukem147 как решение

Решение

Можно так:
Java
1
2
3
4
5
6
7
8
9
10
11
public class Application {
    public static void main(String[] args) {
        boolean isReady = false;
        Driver newDriver = null;
        while(!isReady) {
            newDriver = Driver.pickDriver();
            isReady = newDriver.isReady_driver();
        }
        Dispatcher.sendDriver(newDriver);
    }
}
1
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91
07.08.2015, 14:44  [ТС]
Цитата Сообщение от rory-breaker Посмотреть сообщение
Можно так:
Java
1
2
3
4
5
6
7
8
9
10
11
public class Application {
    public static void main(String[] args) {
        boolean isReady = false;
        Driver newDriver = null;
        while(!isReady) {
            newDriver = Driver.pickDriver();
            isReady = newDriver.isReady_driver();
        }
        Dispatcher.sendDriver(newDriver);
    }
}
оно работает =) спасибо Вам. лайк кинул.
но в случае false просто идет цикл, а не отрабатывает условие
Java
1
System.out.println("The driver " + getDriver_name() + " is not ready. The driver is removed today.");
но этого уже тоже достаточно. спасибо.
0
34 / 34 / 35
Регистрация: 21.04.2015
Сообщений: 74
07.08.2015, 16:31
Ну да метод sendDriver(newDriver) вызывается только после выбора свободного водителя.
Можно добавить вызов метода repair () в цикл, а sendDriver(newDriver) убрать.
Java
1
2
3
4
5
6
7
8
9
10
11
public class Application {
    public static void main(String[] args) {
        boolean isReady = false;
        Driver newDriver = null;
        while(!isReady) {
            newDriver = Driver.pickDriver();
            isReady = newDriver.isReady_driver();
            newDriver.repair();
        }
    }
}
Да и вообще в чем смысл метода sendDriver(Driver) если единственная его функция вызывать метод repair().
0
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91
07.08.2015, 17:03  [ТС]
Цитата Сообщение от rory-breaker Посмотреть сообщение
Ну да метод sendDriver(newDriver) вызывается только после выбора свободного водителя.
Можно добавить вызов метода repair () в цикл, а sendDriver(newDriver) убрать.
Java
1
2
3
4
5
6
7
8
9
10
11
public class Application {
    public static void main(String[] args) {
        boolean isReady = false;
        Driver newDriver = null;
        while(!isReady) {
            newDriver = Driver.pickDriver();
            isReady = newDriver.isReady_driver();
            newDriver.repair();
        }
    }
}
Да и вообще в чем смысл метода sendDriver(Driver) если единственная его функция вызывать метод repair().
та потребовали с меня, что бы проверка шла от диспетчера. ничего лучше пока я не придумал. я Jav-е только учусь. поэтому вполне могут быть и не совсем правильные решения. спасибо Вам большое.
0
34 / 34 / 35
Регистрация: 21.04.2015
Сообщений: 74
07.08.2015, 17:42
так и делайте проверку от диспетчера
Java
1
2
3
4
5
6
7
8
9
10
public class Dispatcher {
 
    public static void sendDriver (Driver driver) {
        if (driver.isReady_driver() == false) {
            System.out.println("The driver " + driver.getDriver_name() + " is not ready. The driver is removed today.");
        } else {
            System.out.println("Your pick: " + driver.getDriver_name() + ". Mobile phone: " + driver.getMobile());
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.08.2015, 17:42
Помогаю со студенческими работами здесь

Почему если условие входа в цикл не выполняется, функция заново входит в цикл
Сам код: private void traverse_node(TreeControlItem node) { TreeControlItem childNode = default(TreeControlItem);...

Код для условия: если прямоугольник - выводить true, если квадрат - false
Код для условия: если прямоугольник - выводить true, если квадрат - false. а и в - стороны Вот такой не идет: { ...

Цикл: Если число ялвляется степенью числа 3, то вывести TRUE а если не является - False
помогите задачку на паскале решить через while!!!!!!!!!! Дано целое число N (>0). Если оно ялвляется степенью числа 3 то вывести TRUE а...

Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет
Условие задачи: Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию,...

Если оба числа четны или нечетые выводить True, иначе - False.
Написать программу с логической операцией. Даны два числа А,В имеющие одинаковую четность. Если оба числа четны выводит True, если оба...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru