Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24

Variable might not have been initialized

21.09.2011, 19:28. Показов 5570. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, почему у меня ругается
Java
1
2
3
int a;
try{for(a=1;a<10000;a*=10)if(new TestSum(a,false,true).failedtests.size()!=0) write("!");}
catch(Exception e){ write(a + ""); }
подчеркивает переменную a в выражении write(a+"")
Сообщение: «Переменная может и не объявляться» (как правило, такие сообщения идут под знаком Warning и на них я не обращаю внимание, но тут это ошибка, из-за которой код не компилится)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2011, 19:28
Ответы с готовыми решениями:

Java - Variable might not have been initialized
Здравствуй, тот кто это читает! Моя программа должна считать 3 числа и вывести среднее из них. Возникает ошибка Variable 'mid2'...

Ошибка the local variable x0 may not have been initialized
Вечер добрый! Возникла проблема, выдает ошибку для return х0: the local variable x0 may not have been initialized. Почитал подобную...

Непонятная ошибка Variable 'a' might not have been initialized
package com.company; import java.util.Random; public class Main { public static void main(String args) { int...

4
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
21.09.2011, 19:53
до входа в блок try переменная должна быть проинициализирована.
Да и вообще она должна быть проинициализирована. Если не согласны, то посмотрите на результат компиляции этого кода
Java
1
2
int a;
System.out.println(a);
1
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
21.09.2011, 20:37  [ТС]
Хм... Как-то не подумал об этом. Кстати, Ваш пример некорректен в том смысле, что данный код не может быть частью программы, соответствующей мышлению программиста, а именно совершенно непонятно, чему переменная равна (в одних языках аналогичный код выдал бы ноль, в иных ― что в памяти осталось). В исходном же коде я точно знаю, что во время первого чтения переменной её значение будет равняться единице, а в блоке catch ― номеру итерации, на которой возникнет исключение. Таким образом, невозможна ситуация, аналогичная Вашему примеру, и, кроме того, поведение программы совершенно не зависит от первичной инициализации (посему я её и опустил, полагая это присвоение избыточным).
Но ответ Ваш я понял. Спасибо.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
21.09.2011, 22:14
Цитата Сообщение от Mysterious Light Посмотреть сообщение
Таким образом, невозможна ситуация, аналогичная Вашему примеру
Могу вам сказать из опыта, что 100% вероятности в программировании никогда не бывает. 99.9% - бывает, но вот 100% - никогда.
Да и компилятор даже не догадывается, что вы делаете с этой переменной в try.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.09.2011, 10:11
просто int a = 0; вместо int a;
и неважно что там в try с ней происходит, так как ошибка о том что она неинициализирована, так как блок try может обломаться и a=1; не произойдёт и тогда если вы решили вместо эксепшена чёто дальше вытворять, тогда write(a + ""); окажется с неинициализированной переменной
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.09.2011, 10:11
Помогаю со студенческими работами здесь

Ошибка "The local variable res may not have been initialized"
---------------------------my code------------------------------------------------------------------------- import java.util.Scanner; ...

The variable 'x' is being used without being initialized
x,k,y,n - c этой ошибкой, почему?) я вроде все значения объявил, ввожу клавы, а потом провожу действия. Проверил так: Ввел просто 1...

The variable 'tc' is being used without being initialized
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cmath&gt; using std::cout; using std::cin; using std::endl; int main() ...

The variable 'x' is being used without being initialized
Доброго времени суток. Ничего не пойму почему вылазит эта ошибка? : #include &lt;iostream&gt; int main() { double x,y,a; ...

The variable 'c' is being used without being initialized
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; int main(int argc, char *argv) { ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru