Спасибо за ваш ответ @geocodezip, если кому-то это понадобится:
https://developers.google.com/maps/documentation/javascript/examples/overlay-symbol-dashed
services.directions.set.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
services.directions.display.setDirections(response);
var myRoute = response.routes[0].legs[0];
var lineSymbol = {
path: 'M 0,-1 0,1',
strokeOpacity: 1,
scale: 4
};
var line = new google.maps.Polyline({
path: [myRoute.steps[myRoute.steps.length - 1].end_point, to.geometry.location],
strokeOpacity: 0,
strokeColor: "#7d7d7d",
icons: [{
icon: lineSymbol,
offset: '0',
repeat: '20px'
}],
map: map
});
}
});
Разница между получением 6 и получением 1 состоит в том, думаете ли вы, что j*5
будет оцениваться первым или ++j
будет оцениваться первым. Правило в Java состоит в том, что подвыражения оцениваются в порядке, в котором они появляются в выражении, если порядок не определяется зависимостями. Здесь j*5
появляется первым в выражении, поэтому оно вычисляется первым. Это дает результат 1
.
У вас есть что-то похожее на код ниже:
int j = 0;
int i1 = j*5+ ++j;
System.out.println("j =" + j);
System.out.println("i1 =" + i1);
Вам нужно отредактировать свой код так:
int j = 0;
int i1 = ++j*5 + j;
System.out.println("j =" + j);
System.out.println("i1 =" + i1);
Ваш окончательный вывод для «i1 =» + i1) будет быть 6. Проблема в том, что в вашем первом примере кода вы не увеличиваете J перед тем, как умножить его на 5, поэтому вы увеличиваете его только на +1, потому что вы на самом деле не увеличиваете j, пока не умножите 0 * 5. (0 * 5) + 1 = 1. Я просто увеличил j (в форме префикса), чтобы он увеличился на 1, и теперь вы умножаете (1 * 5) + 1.