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

While or do while or else?

24.02.2016, 11:15. Показов 1133. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Не могу найти решение для данной задачи, а конкретно: если мы вводим не 1 или 2, то как вернутся к началу (к первому if)? Пробовал заключить в цикл, но программа выводит Please, select 1 or 2 option. в бесконечность. Помогите, пожалуйста. Перепробовал уже всё.
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
/* Создайте класс в котором будут 2 статических метода:
        - перевод числа из 2ой в 10ную систему счисления
        - перевод числа из 10ной в 2ную систему счисления
        В методе main другого класса дайте возможность пользователю выбрать, что он хочет делать из 2х вариантов
        и вызовите соответствующую функцию.
 */
public class FromBinaryToDecimalAndBack {
    public static void main(String[] args) {
 
 
        System.out.println("Choose the option:");
        System.out.println("1 - Convert a number from binary to decimal");
        System.out.println("2 - Convert a number from decimal to binary");
 
        int option = newScanner();
 
 
        if (option == 1) {
            System.out.print("Enter binary number to convert: ");
            System.out.println("The decimal number is: " + Integer.toBinaryString(newScanner()));
        } else if (option == 2) {
            System.out.print("Enter decimal number to convert: ");
            System.out.println("The binary number is: " + Integer.parseInt(String.valueOf(newScanner()), 2));
        } else {
            System.out.println("Please, select 1 or 2 option.");
        }
    }
 
 
    public static int newScanner() {
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();
 
        return number;
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.02.2016, 11:15
Ответы с готовыми решениями:

Заменить if else if . else if . else if
Есть форма, на ней раидобаттаны и несколько полей ввода и кнопка. Нажатие кнопки вызывает следующее событие: private void...

Не распознается второй Scanner в while; если даже в цикле while ввожу "N", цикл while выполняется
Scanner scanner = new Scanner(System.in); System.out.println("Ввести заметку?"); String text = scanner.nextLine(); ...

Вывести треугольник из чисел, используя циклы while/do while
Доброго времени суток! Нужно вывести треугольник вида: ........1 ......21 ....321 ..4321 54321 ..4321 ....321 ......21

8
0 / 0 / 0
Регистрация: 20.02.2016
Сообщений: 3
24.02.2016, 12:00
Пробовал?

Java
1
2
3
4
while ((option != 1)&&(option != 2)){
      System.out.println("Please, select 1 or 2 option.");
      option = newScanner();
}
0
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 32
24.02.2016, 13:30  [ТС]
Choose the option:
1 - Convert a number from binary to decimal
2 - Convert a number from decimal to binary
3
Please, select 1 or 2 option.
1

Process finished with exit code 0

Не работает ((
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
24.02.2016, 13:44
Лучший ответ Сообщение было отмечено ATsurkanu как решение

Решение

ATsurkanu, вот тут взгляните, я только что "помогал" одному товарищу, может такая реализация Вас устроит. Методы подправите на свои запросы.
1
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 32
24.02.2016, 18:24  [ТС]
Спасибо!!! Всё работает! Не могли бы Вы растолковать немного, почему мы метод "мейн" вынесли отдельно?
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
24.02.2016, 21:07
ATsurkanu,
Цитата Сообщение от ATsurkanu Посмотреть сообщение
метод "мейн" вынесли отдельно
ну что значит отдельно? Он же в пределах класс, пакета, программы. Просто я полагаю, что основная функция main - это запустить процесс, а дальше он уж сам должен работать. Как стартёр у автомобиля - крутнул секунду и целый день катаешься ни фига не делая. Вот он [стартёр] отдельно от машины? Как-то так я полагаю. Хотя, честно, Java пока что мало изучил, могу и ошибаться...
0
0 / 0 / 0
Регистрация: 20.02.2016
Сообщений: 3
24.02.2016, 22:14
Цитата Сообщение от ATsurkanu Посмотреть сообщение
Choose the option:
Не работает ((
У меня работает:
Choose the option:
1 - Convert a number from binary to decimal
2 - Convert a number from decimal to binary
4
Please, select 1 or 2 option.
3
Please, select 1 or 2 option.
1
Enter binary number to convert: 444
The decimal number is: 110111100

Код:

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
class MyClass {
    public static void main(String str[]){
    System.out.println("Choose the option:");
        System.out.println("1 - Convert a number from binary to decimal");
        System.out.println("2 - Convert a number from decimal to binary");
 
        int option = newScanner();
 
        while ((option != 1)&&(option != 2)){
            System.out.println("Please, select 1 or 2 option.");
            option = newScanner();
        }
 
        if (option == 1) {
            System.out.print("Enter binary number to convert: ");
            System.out.println("The decimal number is: " + Integer.toBinaryString(newScanner()));
        } else if (option == 2) {
            System.out.print("Enter decimal number to convert: ");
            System.out.println("The binary number is: " + Integer.parseInt(String.valueOf(newScanner()), 2));
        }
    }
    public static int newScanner() {
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();
        return number;
    }
Но в моем варианте после преобразования числа программа завершается.

Добавлено через 16 минут
Что бы не завершалась, нужно код вынести из main в отдельный статический метод и сделать рекурсию, как в предыдущем примере.
0
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 32
25.02.2016, 09:52  [ТС]
Я имел в виду, что обычно, код пишется в методе мейн, а тут метод отдельно от остальных членов класса (как вы говорите - стартер). Сам только только начал джаву изучать, поэтому и вопросы такие.
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
25.02.2016, 11:04
ATsurkanu, да нормальные вопросы; ответы, может быть не очень понятные, но будете заниматься и понимание придёт. Вообще лучше методы не слишком большими делать, по рекомендациям где-то до двадцати строк. А в main'e можно, конечно, наворотить не весть чего, а как потом разбираться? В общем случае нужно стараться сделать так, что при изменении внутреннего наполнения метода не пришлось переписывать все остальные.
Демонстрационные примеры (и здесь на форуме тоже) или отработку можно писать в main, но нам же ни кто потом не мешает написанный и уже работающий код вынести в отдельный метод и пользоваться им по мере необходимости.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.02.2016, 11:04
Помогаю со студенческими работами здесь

Цикл while, do-while. Выводить элементы заново, если булевое значение false
Есть класс Driver: public class Driver { { idGenerator++; } private static int idGenerator = 0; ...

Узор из цифр. Вложенные циклы. Использование Do While.While
Необходимо сделать две программы: Вводится целое число N(1<=N<=9),выводится несколько строк с числами которые образуют узор.Узор...

Циклы do.while и while
Здравствуйте. Прошел тему циклов достаточно давно, но задался, только сегодня, таким вопросом (потому что всегда юзал while): когда лучше...

Как из do-while перевести в while
void __fastcall TForm1::Button2Click(TObject *Sender) { { float x,a,s=0; int f,i,k=0; x=StrToFloat(Edit6->Text); do {k++; ...

while/do while
Помогите с задачей по Java Через сколько лет 100$ в банке превратятся в 200$. Годовой процент равен 2%. Использовать цикл while/do while.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru