Java
почему одни переменные могут объявлять буквы другие цифры?
переменная double может объявлять только вещественные числа а переменная string только буквы так зачем вообще разделять переменные на возможности почему нельзя сделать одну переменную которая может объявлять что угодно
> почему нельзя сделать одну переменную которая может объявлять что угодно
Можно, но это имеет ряд недостатков. Есть языки программирования, где у переменных не указывается тип данных, например Python и JavaScript. Это называется динамической типизацией. В Java тоже можно объявить переменную, которой можно присвоить всё что угодно (если указать тип Object).
> string только буквы
Нет, string - это строка любых символов: букв, цифр, знаков. Например, текст этого сообщения мог бы храниться в переменной типа String.
Можно, но это имеет ряд недостатков. Есть языки программирования, где у переменных не указывается тип данных, например Python и JavaScript. Это называется динамической типизацией. В Java тоже можно объявить переменную, которой можно присвоить всё что угодно (если указать тип Object).
> string только буквы
Нет, string - это строка любых символов: букв, цифр, знаков. Например, текст этого сообщения мог бы храниться в переменной типа String.
А как потом с этой мега переменной работать?
a=1;
b=2;
c=a+b; что должно получиться? число 3 или текст 12 ?
a=1;
b=2;
c=a+b; что должно получиться? число 3 или текст 12 ?
В языках программирования есть такая вещь как типизация. Она может статическая, а может быть и динамическая.
В языках Си, С++, Java, Pascal, C# - она статическая (с некоторыми оговорками, но типы в основном статические). Это означает, что вы должны сразу указывать тип переменной и в зависимости от этого, будет понятно, что с этой переменной делать.
В языках python и javascript она динамическая, то есть тип переменной определяется по ходу, в зависимости от того, что в эту переменную положили и что с ней сделали. Жизнь программиста упрощается, но это может доставить неприятности, типо неправильного воспринимания типа. Например хочешь сложить 2 числа, а тут хоп, программа думает, что строки и вместо 1+5=6 ты получаешь 1+5=15. Вот буквально вчера с такой проблемой столкнулся. Я в javascript пытаюсь сделать цикл где к числу x прибавляется определенный заранее определенный шаг. Цикл выполняется один раз и я думал, а почему это. Минут 30 потратил на решение этой проблемы, а оказалось, что числа складываются как строки 1 + 0.9 = 10.9, вот и цикл выполняется один раз. Пришлось явно приводить переменную к типу float.
Тут подробно всё написано - habr.com/post/161205/
В языках Си, С++, Java, Pascal, C# - она статическая (с некоторыми оговорками, но типы в основном статические). Это означает, что вы должны сразу указывать тип переменной и в зависимости от этого, будет понятно, что с этой переменной делать.
В языках python и javascript она динамическая, то есть тип переменной определяется по ходу, в зависимости от того, что в эту переменную положили и что с ней сделали. Жизнь программиста упрощается, но это может доставить неприятности, типо неправильного воспринимания типа. Например хочешь сложить 2 числа, а тут хоп, программа думает, что строки и вместо 1+5=6 ты получаешь 1+5=15. Вот буквально вчера с такой проблемой столкнулся. Я в javascript пытаюсь сделать цикл где к числу x прибавляется определенный заранее определенный шаг. Цикл выполняется один раз и я думал, а почему это. Минут 30 потратил на решение этой проблемы, а оказалось, что числа складываются как строки 1 + 0.9 = 10.9, вот и цикл выполняется один раз. Пришлось явно приводить переменную к типу float.
Тут подробно всё написано - habr.com/post/161205/
Похожие вопросы
- почему выгодно переменные обявлять до цикла а не в цикле
- Этот вопрос давно меня мучает. Почему в более мощных языках программирования нужно самому объявлять тип данной переменой
- Зачем создают приватные переменные, а затем делают их общедоступными через публичные методы?
- Как сравнить элементы массива с другой переменной?
- Разве так можно связывать внешние переменные с переменными метода?
- Переменная в for loop
- Нахождение номера члена последовательности Фиббоначи. Да ещё и посчитать сколько цифр в этом члене.
- Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?
- Как влияет использование модификатора final на локальные и глобальные переменные в Java
- Почему все типы данных в Java пишутся с маленькой буквы, кроме String?
по-моему наоборот: недостатков больше чем достоинств.