Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему выдается на выходе i=1, а не ошибка

Faaxxa ADad Ученик (108), на голосовании 5 лет назад
Мы умножаем чар на 10, почему выводится результат? И если ошибки быть не должно, почему выводится именно 1?
public class Quest8{
static int j=2;
public static void result(int i){
i *= 10;
j += 2;
}
public static void main(String[] args){
char i = '1';
result(i);
System.out.println(i+" "+j);
} }
Голосование за лучший ответ
Miku Hatsune Мудрец (11188) 5 лет назад
Потому что ты передал лишь значение i в result

Поменяй на
public static void result(ref int i)

и
result(ref i);

P.S. Ответ неверный, это про C#
Юрий Семыкин Искусственный Интеллект (186937) 5 лет назад
То, что "i" умножается на 10 остаётся внутри result_а и наружу не выходит. Снаружи "i" как было символом, так и осталось, значение и тип не поменялись. А ошибки, формально, нет: char и int совместимы.
Похожие вопросы