Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2020, 14:00   #1
Yux777
Новичок
Джуниор
 
Регистрация: 03.10.2020
Сообщений: 3
По умолчанию Программирование выбора персонажа

Всем доброго времени суток! Недавно начал изучать java, опыта никакого не было, читаю шилтда, для закрепления материала сижу и пишу что в голову придет. Помогите пожалуйста - напридумывал такое...


Код:
package javaapplication25;

import java.io.IOException;

/**
 *
 * @author User
 */
public class MostWanted {

    /**
     * @param args the command line arguments
     * @throws java.io.IOException
     */
    public static void main(String[] args) throws IOException {
        char choice;
        do {
            System.out.println("Выберите персонажа: \n ");
            System.out.println("1. Гонщик Иван. Спецификация дрифтер.");
            System.out.println("2. Гонщик Коля. Спецификация драгрейсинг.");
            System.out.println("3. Гонщик Сергей. Спецификация таксист.");
            choice = (char) System.in.read ();
        }while (choice < '1' || choice > '3');
        
        System.out.println("\n");
        switch (choice) {
            case '1':
                person Ivan = new person();
                Ivan.name = "Иван";
                Ivan.age = 25;
                Ivan.adrenaline();
                System.out.println("Привет! Меня зовут " + Ivan.name + ". Мне " + Ivan.age + " лет. Уровень адреналина в крови " + Ivan.adrenaline() + "\n");
                break;
            case '2':
                person Kolya = new person ();
                Kolya.name = "Коля";
                Kolya.age = 27;
                Kolya.adrenaline();
                System.out.println("Привет! Меня зовут " + Kolya.name + ". Мне " + Kolya.age + " лет. Уровень адреналина в крови " + Kolya.adrenaline() + "\n");
                break;
            case '3':
                person Sergei = new person ();
                Sergei.name = "Сергей";
                Sergei.age = 30;
                Sergei.adrenaline();
                System.out.println("Привет! Меня зовут " + Sergei.name + ". Мне " + Sergei.age + " лет. Уровень адреналина в крови " + Sergei.adrenaline() + "\n");
                break;
        }
        System.out.println("\n");
        System.out.println("\n");
        
        char choice2;
        do {
            System.out.println("Выберите тачку: \n ");
            System.out.println("1. Форд Фокус косфорт.");
            System.out.println("2. Митсубиси лансер.");
            System.out.println("3. Субару импреза. \n");
            choice2 = (char) System.in.read ();
        }while (choice2 < '1' || choice2 > '3');
        System.out.println("\n");
        switch (choice2) {
            case 1:
                ttx_car Ford = new ttx_car();
                Ford.marka = "Форд Фокус косфорт";
                Ford.speed = 220;
                Ford.rt = 15.6;
                Ford.ypravl = 1.1;
                System.out.println(" Вы выбрали " + Ford.marka + ". Максимальная скорость " + Ford.speed + ". Расход топлива " + Ford.rt + ". Управляемость " + Ford.ypravl + ". ");
                break;
            case 2:
                ttx_car Mits = new ttx_car();
                Mits.marka = "Митсубиси лансер";
                Mits.speed = 235;
                Mits.rt = 18.9;
                Mits.ypravl = 1.22;
                System.out.println(" Вы выбрали " + Mits.marka + ". Максимальная скорость " + Mits.speed + ". Расход топлива " + Mits.rt + ". Управляемость " + Mits.ypravl + ". ");
                break;
            case 3:
                ttx_car Sub = new ttx_car();
                Sub.marka = "Субару импреза";
                Sub.speed = 228;
                Sub.rt = 19.2;
                Sub.ypravl = 1.05;
                System.out.println(" Вы выбрали " + Sub.marka + ". Максимальная скорость " + Sub.speed + ". Расход топлива " + Sub.rt + ". Управляемость " + Sub.ypravl + ". ");
                break;
        }
    }
}
class person {
    String name;
    int age;
    int adrenaline () {
            return (int) ((double) age * 0.75);
    }
}
class ttx_car {
    String marka; // марка машины
    int time;
    person bez = new person(); // для расчета затраченного топлива
    person bez1 = new person(); // для расчета износа шин
    double rt; // расход топлива
    int speed;  // максимальная скорость
    double ypravl; // управляемость
    double ras () { // пройденное расстояние
        return time * speed;
    }
    double rt1 () { // затраченое топливо
        return (ras () / (100 / rt)) * ypravl * bez.adrenaline();
    }
    double izsh () { // износ шин
        return ras () * 0.05 * bez1.adrenaline();
    }
}

В результате компиляции получаю такое:



Выберите персонажа:

1. Гонщик Иван. Спецификация дрифтер.
2. Гонщик Коля. Спецификация драгрейсинг.
3. Гонщик Сергей. Спецификация таксист.
2


Привет! Меня зовут Коля. Мне 27 лет. Уровень адреналина в крови 20





Выберите тачку:

1. Форд Фокус косфорт.
2. Митсубиси лансер.
3. Субару импреза.

Выберите тачку:

1. Форд Фокус косфорт.
2. Митсубиси лансер.
3. Субару импреза.

1



У меня второй цикл "do while" дважды прописывает меню и усе((. Хэлп!
Изображения
Тип файла: png 2020-10-03_13-53-01.png (9.1 Кб, 18 просмотров)

Последний раз редактировалось BDA; 04.10.2020 в 02:22.
Yux777 вне форума Ответить с цитированием
Старый 04.10.2020, 19:08   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Предположу, что после чтения choice в буфере еще остался символ переноса строки, который считывается в choice2, а раз он не подходит под условие завершения цикла, то сообщение выводится еще раз.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.10.2020, 09:02   #3
Yux777
Новичок
Джуниор
 
Регистрация: 03.10.2020
Сообщений: 3
По умолчанию Просьба ПЛЗ

Не помогло(. Прошу Вашей помощи разобраться, пожалуйста, я уже все перепробовал, а обратиться не к кому! Я самоучка!
Yux777 вне форума Ответить с цитированием
Старый 06.10.2020, 12:11   #4
Yux777
Новичок
Джуниор
 
Регистрация: 03.10.2020
Сообщений: 3
По умолчанию нашел ошибку

Я нашел косяк!!!! Я пропустил ковычки ''''''''
Спасибо большое за внимание к начинающим!
Изображения
Тип файла: png 2020-10-06_12-08-08 (2).png (16.8 Кб, 7 просмотров)
Yux777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Unity Как сделать для персонажа rotation KonnorsArmy Помощь студентам 1 25.12.2018 22:36
Создание персонажа в QT Creator (есть исходники) Vzor Фриланс 1 16.01.2017 21:16
Как взломать персонажа в онлайн текстовой игре jonikster Безопасность, Шифрование 1 19.09.2015 13:49
Передвижение персонажа как The White Chamber X@OC Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 05.10.2012 22:29
Совершенствование ИИ персонажа pre_pod Gamedev - cоздание игр: Unity, OpenGL, DirectX 36 29.12.2007 23:56