BufferedReader z=new BufferedReader(new InputStreamReader(System.in));
int a=Integer.parseInt(z.readLine());
int b=Integer.parseInt(z.readLine());
int c=Integer.parseInt(z.readLine());
if(a==b&&a!=c)
c=3; // или int c=3;
System.out.print("c");
else if(b==c&&b!=a)
System.out.print("1");
else if (c==a&&c!=b)
System.out.print("2");
Что бы не писать в System.out.print("1");,а как присвоить значение цифрам: с=3 ,int c=3 почемуто не проходят компеляцию в консоле? Тогда как? Это переменные локальные или местные (как например в JS)?Или что вводим с клавиатуры переменную уже на другое значение изменить нельзя? спс....
Demashe
8 уровень
подскажите что и куда надо вставить в код что бы изменить переменную?
Обсуждается
Комментарии (31)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Demashe
1 марта 2018, 08:12
так правильно вроде бы..
if (a<1)
int x=0; // переменную х вызвали раньше и правильно ,но здесь ОШИБКА !!!
int a =x; // а переименовали в х=0
System.out.print(x); // если условие true, не что не мешает вывести (х)
if (a<25 && b>0)
System.out.print("1");
ОШИБКА: Error:(18, 17) java: variable declaration not allowed here
В общем не знаю я как
переменную( int а) что вводится с клавы, ПРЕОБРАЗОВАТЬ в
переменную (int x) что выводится в System.out.print()
Может кто покажет такой код?
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 09:53
это то, о чем я говорил.
в ифе вы уже используете a, хотя объявляете ее ниже по коду.
теперь насчет ифа. в джаве не так, как в питоне, например, где отступы играют роль. поэтому лучше после ифа ставить фигурные скобки и код писать уже внутри них.
нет, не переименовали. переименовывать переменные нельзя во время выполнения))
в этом коде вы создали переменную а и положили в нее то значение, которое хранила переменная х. по сути, тут вы в а положили 0 просто.
+1
Demashe
1 марта 2018, 14:45
Согласен не переименовал переменную а,она уже была ранее в коде обозначена
int a=Integer.parseInt(z.readLine());
Я присвоил далее int a значение int x которое = 0
Тогда возникает 2 вопроса:
1.Зачем тогда нужна int x=0 в этом примере всё равно эта переменная бесполезна.можно просто просто присвоить int a= 0;
2.A тогда как int a можно переименовать или переприсвоить значение,что бы получить результат
переменную( int а) что вводится с клавы, ПРЕОБРАЗОВАТЬ или ПРИСВОИТЬ значение отличного от существующего int a, что выводится в System.out.print( x).Это может быть String или int ?
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 16:03
"1.Зачем тогда нужна int x=0 в этом примере всё равно эта переменная бесполезна.можно просто просто присвоить int a= 0;"
я не знаю зачем вам нужна была переменная х
это же ваш код, не мой)
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 16:06
"2.A тогда как int a можно переименовать или переприсвоить значение,что бы получить результат
переменную( int а) что вводится с клавы, ПРЕОБРАЗОВАТЬ или ПРИСВОИТЬ значение отличного от существующего int a, что выводится в System.out.print( x).Это может быть String или int ?"
преименовать - никак.
присвоить новое значение вот так:
остальное - не понял :) перефразируйте ваш вопрос как-то более понятно может? 0
Demashe
3 марта 2018, 12:51
A: Вели с клавы int a= ? неважно
1 int a проходит условие if (a>0)
2 если условие true
3 выводим System.out.print ("1")
4 false идём дальше по коду....
B: Можно:
Вели с клавы int a= ? неважно
1 обозначили переменную ,пусть да же String eee="Hello" // не важно...
2 int a проходит условие if (a>0)
2 если условие true
3 выводим System.out.print ("eee")
C: Пожелание:
Вели с клавы int a= ? неважно
1 int a проходит условие if (a>0)
2 если условие true
3 int a ПРИВНЯЕТСЯ к String eee="Hello" // хоть int eee=? не важно
4 выводим System.out.print ("eee") ;
вот как-то так
переменную( int а) что вводится с клавы, ПРЕОБРАЗОВАТЬ в
переменную (int eee) что выводится в System.out.print(eee)
Почему спрашиваю?Если бы было пункт такой "C" возможен int a==int eee(как-то сравнением больше выглядет),то int a оставался далее в коде не меняясь далее,а с int eee могли бы так же работать и делее так же преобразовывать(но своим уже путём).Образно говоря =бала бы развилка дорог.......
0
Стас Пасинков Software Developer в Zipy Master
3 марта 2018, 14:58
а что вообще за задача? что от вас в условии требуют по ней сделать?
найти числа, которые больше нуля? или что?
я не понимаю что вы пытаетесь сделать. и зачем вам выводить название вашей переменной...
0
Demashe
3 марта 2018, 19:02
Задача уже вышла из из условий и задачей в javarush.ru
Условие задачи:
переменную( int а) что вводится с клавы, ПРЕОБРАЗОВАТЬ в
переменную (int eee) что выводится в System.out.print(eee)
Почему спрашиваю?Если бы было пункт такой "C" возможен int a==int eee(как-то сравнением больше выглядет),то int a оставался далее в коде не меняясь далее,а с int eee могли бы так же работать и делее так же преобразовывать(но своим уже путём).Образно говоря =бала бы развилка дорог.......
И прошу простить меня,что отвлекаю от учебного процесса!!!
0
Стас Пасинков Software Developer в Zipy Master
3 марта 2018, 22:08
тогда в а у вас остается то значение, которе ввели с клавиатуры, а в еее - копия значения из переменной а. с еее можно дальше работать не боясь изменить значение переменной а.
но такой вариант работает только с примитивами :) с объектами - там явно придется делать копию.
+1
Demashe
4 марта 2018, 18:39
спасибо !!!
0
Demashe
1 марта 2018, 07:35
if (a<1)
a= int x; // ошибка
x= 55;
System.out.print(x);
if (a<25 && b>0)
System.out.print("1");
компелятор:Error:(18, 20) java: '.class' expected
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 09:55
правильно. ведь "int x" - это никакое не значение :)
слева от знака = пишете переменную, в которую хотите положить новое значение, справа - само значение
0
Demashe
1 марта 2018, 14:55
Понимаю. А int x не значение разве? тогда так :
а=х; // если х присвоено ранее в коде.
или просто
а=55 ;
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 16:08
да, так будет работать :)
а когда вы пишете
это вы просто объявили джаве, что теперь у вас будет целочисленная переменная myVariable, которую вы дальше в коде можете использовать уже. 0
Demashe
3 марта 2018, 19:13
int myVariable; -это значение как int x; ? или какая-то функция объявления переменной ?(тогда пожалуста кусочек кода с int myVariable;)
0
Стас Пасинков Software Developer в Zipy Master
3 марта 2018, 22:09
"int myVariable; -это значение как int x; ?"
да, просто название переменной такое.
0
Demashe
1 марта 2018, 07:32
if (a<1)
a=25;
System.out.print(a);
if (a<25 && b>0)
System.out.print("1");
1.Компелируется и вводится с клавы.А чего такой вывод странный?Ведь не одно условие не выполенено?
26
3
26 // вывод
2.А здесь два условия выполено: второй print =25, не доходит до него
0
7
25 // вывод
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 09:56
потому что этот код всегда будет выводить 25
это аналогично такой записи:
ведь будет странно тут удивляться почему оно выводит всегда 25, да?) 0
Demashe
1 марта 2018, 07:03
public static void main(String[] args) throws Exception {
//напишите тут ваш ко
BufferedReader z=new BufferedReader(new InputStreamReader(System.in));
int a=Integer.parseInt(z.readLine());//
int b=Integer.parseInt(z.readLine());
if (a<1)
a=25;
System.out.print(a);
else if (a<25 && b>0)
System.out.print("1");
а=5,в=12 // не вводится с клавы
ОШИБКА
Error:(21, 9) java: 'else' without 'if'
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 10:01
снова же потому что иф вы используете без скобок, а просто пытаясь отступами добиться нужного. отступы в джаве не работают.
у вас к ифу относится только первая строка за ним. ваш код аналогичен бы такому
конечно, тут видим что else действительно получился оторванным от if (между ними другая команда находится)
используйте фигурные скобки - это позволит вам избежать многих ошибок
0
Demashe
1 марта 2018, 06:51
BufferedReader z=new BufferedReader(new InputStreamReader(System.in));
int a=Integer.parseInt(z.readLine());//
int b=Integer.parseInt(z.readLine());
if (a<1)
int a=25;
System.out.print(a);
else if (a>25 && b>0)
System.out.print("1");
}
КОНСОЛЬ:
Error:(18, 16) java: variable declaration not allowed here
Error:(21, 9) java: 'else' without 'if'
Что здесь не так???
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 10:03
1. нет скобок (ответил чуть выше)
2. вы два раза создаете переменную а
если вам надо положить в существующую переменную какое-то значение - не заводите новую переменную с таким же именем, а используйте существующую.
0
Стас Пасинков Software Developer в Zipy Master
28 февраля 2018, 23:54
можно использовать так:
тут сначала вы объявили переменную
а потом положили в нее какое-то значение.
а можно сразу:
вы можете работать только с теми переменными, которые были объявлены раньше/выше по коду, а не как в js, где объявить можно чуть ли не в любом месте.
и конечно же вы можете спокойно делать
и конечно же так:
вопрос ваш про локальные или местные - не понял. объясните разницу между этими понятиями, и тогда смогу ответить какой вариант ближе в джаве. +1
Demashe
1 марта 2018, 05:49
Простите уточняю ! Локальные и глобальные переменные в JS, а также чем они отличаются друг от друга. Глобальные переменные. Глобальная переменная - это такая, которая объявлена вне тела какой-либо функции.Локальная переменная существует и изменять её можно только в одной функции(метод)и нельзя применить её в дольнешет теле кода.
В Java то же самое(только чуть точнее) переменные зависят от видимости переменной в теле кода (static,public),то есть можно ли эту переменную использовать дальше в теле всего кода или нет.
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 10:10
ааа, ну про глобальные знаю :) но вы спрашивали про какие-то "местные", о которых я не слышал :)
нет, в джава нет глобальных переменных.
каждая переменная видна в своем блоке кода и во вложенных.
каждый блок кода в джаве начинается с { и зканчивается символом }
класс - это большой такой блок кода, методы - тоже отдельные блоки, но поменьше, циклы, условия, итд - тоже можно рассматривать как блоки кода. да и вообще ничего нам не мешает просто поставить {} в каком-то месте и там че-то написать))
пример:
так вот а - видна и в первом блоке, и во втором, и в третьем,
b видна во втором и в третьем, но не видна в первом блоке кода,
с видна - только в своем блоке кода 0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 10:14
public/static и все такое - это немного не об этом.
если у вас на уровне класса объявлена какая-то public переменная, или даже private - то она все-равно видна внутри своего класса (я только-что описал на примере почему)
а вот если вы из другого класса попытаетесь получить доступ к вашей переменной этого класса - вот тут уже да, включаются в работу эти модификаторы доступа. и public переменную вы сможете "увидеть" из другого класса, а вот private - нет :)
0
Александр
28 февраля 2018, 23:49
Если переменная уже проинициализирована раньше, то в условии её заново инициализировать не надо, просто переприсвоить значение. Но если, например, в первом условии вы переприсвоите c, то в следующих двух условиях у c уже будет значение, не равное введенному с клавиатуры. Поэтому компилятор и будет ругаться. Можно либо просто так и вбивать цифры в вывод, либо создать 4-ую переменную.
0
Demashe
1 марта 2018, 06:11
Да это понятно. Компелятор ругается потому что переменную с=переименовали.Дальше в if в (условии c=) if else ,будет уже другое значение чем ввели её изначально с клавы.Хочу просто понять почему компелятор понимает это как ошибку.Ведь по логике кампелятор (даже мы переименовали переменную в if) и он должен не считать это ОШИБКОЙ просто вывести какой из println или оставить пустую строку.А он даже не допускает ввод с клавы ((((
0
Стас Пасинков Software Developer в Zipy Master
1 марта 2018, 10:17
вообще не понимаю почему вы так уверенно считаете, что можно переименовывать переменные при помощи кода. и уж тем более, почему можно переименовывать переменные в ифы))
во время работы программы у переменной будет только одно имя, и его никак не изменить.
значение, которое хранится в этой переменной - да, менять можно. но не ее имя.
конечно можно запустить код с переменной а, он выполнится и программа завершится.
потом зайти в этот класс, и просто в текстовом редакторе переименовать вашу переменную с а на б, и потом снова запустить ваш код - но тогда везде будет уже переменная б.
переименовать переменную во время работы программы - невозможно.
0
Александр
1 марта 2018, 19:49
Если в условии больше двух строк, то ставится блок (фигурные скобки) с начала условия и до его конца. А в первом if у Вас их нет, хотя строки две.
0
Demashe
4 марта 2018, 18:50
Надо ставить { } , что бы самого себя не запутать казалось бы пустяком !
0