Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 4
1

Не выводит корректно значения через тип данных

18.03.2021, 00:22. Показов 671. Ответов 9
Метки java (Все метки)

Author24 — интернет-сервис помощи студентам
Принимает только целые числа при вводе, хотя должно принимать с точкой. В чём проблема?

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
package com.company;
 
import java.util.Scanner;
 
public class Test {
 
    public void startTest() {
 
        getAnswer("Вік?", "int");
        getAnswer("Студент?(Y-так, N-ні) ", "char");
        getAnswer("Курс", "byte");
        getAnswer("Денна форма навчання? (true/false)?", "boolean");
        getAnswer("Середній бал", "long");
        getAnswer("Рейтинговий бал", "double");
        getAnswer("Бал за програмування", "short");
        getAnswer("Лишилося років навчання?", "float");
 
    }
 
    public void getAnswer(String question, String answerType) {
 
        Scanner answer = new Scanner(System.in);
        System.out.println(question);
 
        if (answerType.equals("char")) {
            char num = answer.next().charAt(0);
            System.out.println(num);
        } else if (answerType.equals("boolean")) {
            boolean num = answer.nextBoolean();
            System.out.println(num);
        }
 
        selectNumType(answerType, answer);
 
    }
 
    static void selectNumType(String numType, Scanner answer) {
 
        if (numType.equals("int")) {
            int num = answer.nextInt();
            System.out.println(num);
        } else if (numType.equals("byte")) {
            byte num = answer.nextByte();
            System.out.println(num);
        }
 
        if (numType.equals("short")) {
            short num = answer.nextShort();
            System.out.println(num);
        } else if (numType.equals("long")) {
            long num = answer.nextLong();
            System.out.println(num);
        }
 
        if (numType.equals("float")) {
            float num = answer.nextFloat();
            System.out.println(num);
        } else if (numType.equals("double")) {
            double num = answer.nextDouble();
            System.out.println(num);
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2021, 00:22
Ответы с готовыми решениями:

Не корректно выводит значения структуры
Не правильно выдает значения из структуры на русском языке #include <iostream> #include <string>...

не корректно выводит базу данных в делфи
есть программа вроде и селект запросы правильные но вот при работе с делфи почему то косяки на 1...

Какой тип данных указать чтобы всё работало корректно?
uses crt; var priv:string; begin if priv='privet' then writeln('Privet'); if...

Передача данных через форму TEXTAREA не корректно работает
Нужна помощь! Написал гостевую книгу, данные из формы TEXTAREA передаю методом GET, далее ловлю...

9
59 / 40 / 20
Регистрация: 30.01.2019
Сообщений: 133
18.03.2021, 00:43 2
Когда вводишь значение Рейтинговий бал пиши число с запятой а не точкой
5,5 например
1
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
18777 / 10803 / 2903
Регистрация: 21.10.2017
Сообщений: 22,989
18.03.2021, 08:17 3
kosta4310, это некошерно
Java
1
2
        Scanner answer = new Scanner(System.in);
        answer.useLocale(Locale.US);
1
766 / 470 / 66
Регистрация: 22.12.2013
Сообщений: 2,393
Записей в блоге: 19
23.03.2021, 16:16 4
seganrg, Как проверить тип переменной в Java?
Ответы уже были. У вас много if. Код получается в виде лапши.
Вот ответы были
Можно написать что-то более менее в стиле ООП без бесконечных if.

Добавлено через 6 минут
К примеру. Ссылка не вставилась:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Typetester {
    void printType(byte x) {
        System.out.println(x + " is an byte");
    }
    void printType(int x) {
        System.out.println(x + " is an int");
    }
    void printType(float x) {
        System.out.println(x + " is an float");
    }
    void printType(double x) {
        System.out.println(x + " is an double");
    }
    void printType(char x) {
        System.out.println(x + " is an char");
    }
}
Java
1
2
Typetester t = new Typetester();
t.printType( yourVariable );
Автор кода Mvcoile на сайте fooobar
1
54 / 45 / 18
Регистрация: 09.02.2015
Сообщений: 165
23.03.2021, 18:19 5
Цитата Сообщение от vvm28 Посмотреть сообщение
Можно написать что-то более менее в стиле ООП без бесконечных if.
Это круто
0
3578 / 2179 / 570
Регистрация: 02.09.2015
Сообщений: 5,508
23.03.2021, 18:46 6
Цитата Сообщение от vvm28 Посмотреть сообщение
Как проверить тип переменной в Java?
Чет некошерно. Не учитываете обертки (Wrapper), а там достаточно забавно с Boxing/Unboxing.
2
54 / 45 / 18
Регистрация: 09.02.2015
Сообщений: 165
23.03.2021, 20:01 7
Цитата Сообщение от Arsegg Посмотреть сообщение
достаточно забавно с Boxing/Unboxing
Это да, но можно проверить
Java
1
if(value.getClass().getComponentType().isPrimitive())
0
3578 / 2179 / 570
Регистрация: 02.09.2015
Сообщений: 5,508
23.03.2021, 20:02 8
Цитата Сообщение от zoom59rus Посмотреть сообщение
Это да, но можно проверить
У примитива?
0
54 / 45 / 18
Регистрация: 09.02.2015
Сообщений: 165
23.03.2021, 20:04 9
Подход интересный, ведь есть еще пользовательские типы
0
3578 / 2179 / 570
Регистрация: 02.09.2015
Сообщений: 5,508
23.03.2021, 20:18 10
Для данного конкретного случая подход: "Чем проще - тем лучше" - оправдан, в т. ч. switch по Class<?> смотрится не так плохо (если через перегрузки методов). Разумнее реализовать (без перегрузки методов): getIntAnswer, getFloatAnswer и т. п.
P. S. Опять же сугубо имхо, на продакшене такой подход может быть неуместным.
0
23.03.2021, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2021, 20:18
Помогаю со студенческими работами здесь

Реализовать через тип данных структура при этом выделить память через new[]
В таблице из 5 строк хранятся данные о товарах: наименование, цена, количество. Определить и...

Напишите программу , которая выводит на экран все подмножества множества :{'A','B','C','D'}. Через тип множеств SET
Напишите программу , которая выводит на экран все подмножества множества :{'A','B','C','D'}. Через...

При передаче данных через тсп винсокет принимаются не корректно
Здравствуйте. Я не давно начал программировать на visual basic 6.0. Еще много чего не знаю. Так что...

Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона
public Form_List(string a) { str = a; InitializeComponent(); ...

Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона
Здравствуйте. помогите пожалуйста. что может привести к этой ошибке(ошибка в заголовке темы)? ...

Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона
Проблема:При открытии базы данных mssql происходит ошибка :Преобразование типа данных nvarchar в...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru