2014-09-15 3 views
0

Вот мой код:Invalid Оператор присваивания Java

h[ht] * sth -= 3; 

символ "*" дает мне ошибку:

Syntax error on token "*", invalid AssignmentOperator

мне нужно значение ч [HT] * STH быть уменьшена на 3

+1

Если вы пытаетесь сделать что-то вроде «c» с указателем, то «java не поддерживает указатели» – Saif

+0

Каково значение 'h [ht] * sth'? Как его можно уменьшить на три? Что в массиве? Что ты пытаешься сделать? –

+0

- это 'h [ht] * sth' допустимое имя переменной? –

ответ

2

Ваш пример является недопустимым, так как "- =" фактически сокращенная форма:

int a = 1; 
a -= 1; 
// the above line is the same as: 
a = a - 1 

Назначают вычисление на что-то другое:

int a = (h[ht] * sth) - 3 
0

что вы пытаетесь синтаксически неправильно.

h[ht] Я полагаю, и sth две различные переменные, и вы хотите, чтобы уменьшить их результат на 3.

в основном это ошибка компилятора времени, поэтому это не может скомпилировать. Правильно?

для того, чтобы достичь этого вам нужно разбить его на две различные заявления, т.е.

int/long/float/double temp = h[ht] * sth; 
temp-=3; 

или вы можете добиться этого, как этот также (h[ht] * sth)-3

и вы будете в состоянии добиться того, что вы хотите сделать ,

Пожалуйста, прочтите here. и позвольте мне сказать, что компилятор Java реализован с использованием этой грамматики, поэтому, если какой-либо оператор не следует этим грамматическим правилам, результат синтаксической ошибки.

Я надеюсь, что ваша проблема будет решена. Спасибо

Смежные вопросы