String s=null; // значения s null
for(int i=0;i<5;i++)
{
s+="list"; //значения s "nulllist" и ещё + 4 list
list.add(s);
}
Vova GOshko
8 уровень
как сделать так чтобы s было пустым ???
Обсуждается
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
АлексейExpert
14 ноября 2019, 05:42
Понял, для чего требуется +=, но не понял, почему строка является null?
Должно быть ""(кавычки, типа, пустая строка)
0
АлексейExpert
14 ноября 2019, 01:14
+= складывает строки.
= присваивает новое значение.
Зачем требуется += я так и не понял.
И вообще, зачем усложнять циклами?
0
IceBergMaster
14 ноября 2019, 01:26
А в чём сложность? Циклы на то и нужны, чтобы руками не повторять монотонные действия.
0
АлексейExpert
14 ноября 2019, 01:48
Я понимаю, что оптимизация нынче не в моде.
Но на конечное и очень маленькое число операций, на мой взгляд, лучше добавить пять строчек вида
чем городить цикл, в котором:
1) шесть раз будет выполнена операция сравнения
2) пять раз операция присваивания инкремента
3) пять раз list.add("строка");
4) пять раз будет выполнено присваивание той самой строки, которая потом занесется в список.
5) шесть раз произойдет возврат на начало цикла
Двадцать семь операций вместо пяти, только потому что программисту так захотелось.
И это счастье, что просто for использовали, а не foreach - там количество операций еще вырастет.
Цикл имеет смысл использовать тогда, когда есть необходимость выполнять либо очень много операций, либо неизвестное заранее число операций. Тут явно не тот случай.
0
ГоффMaster
14 ноября 2019, 03:57
Ассемблер рулит ;)
0
АлексейExpert
14 ноября 2019, 05:39
А там тоже можно делов понаделать.))))
https://store.steampowered.com/app/375820
Симулятор ассемблера, в котором прямо видно, как складываются или вычитаются числа.))
В самом первом задании ввода-вывода, невозможно уложиться в требование быстродействия если использовать цикл.))
0
IceBergMaster
14 ноября 2019, 08:56
Операции слишком дешёвые, чтобы волноваться о производительности, особенно на 7-м уровне, где как раз полезно закрепить циклы и конкатенацию.
С циклом код становится короче и лаконичнее, что кому важнее - это уже индивидуальное.
+2
АлексейExpert
14 ноября 2019, 09:12
Не буду спорить - верны все высказанные мнения.
0
Roman Doroshenko
13 ноября 2019, 18:20
как вариант - String s;
0
IceBergMaster
13 ноября 2019, 18:28
тогда на
s += "list";
вылетит ошибка.
+2
Roman Doroshenko
13 ноября 2019, 18:55
Согласен. Я про вообще. А в конкретном случае, конечно String s="";
+1
ГоффMaster
13 ноября 2019, 18:12
String s = "";
+4