2014-09-12 2 views
0

Разве это не должно возвращать правильное значение? как конкретно определяет int[] temp? Однако он говорит, что temp не разрешен. поэтому мне пришлось поставить еще один возврат temp внутри if и изменить последнее return внутри else, так что в результате было два результата. Если я устанавливаю значения внутри if и else, не могу ли я вернуть его снаружи?Возврат по подходящему пятну

public int[] maxEnd3(int[] nums) { 

    if (nums[0] > nums[2]) { 
     int[] temp = {nums[0],nums[0],nums[0]}; 
    } 
    else { 
     int[] temp= {nums[2],nums[2],nums[2]}; 
    } 
    return temp; 
} 

ответ

2

Вы не указали температуру в правильной области. Попробуйте это:

public int[] maxEnd3(int[] nums) { 
    int []temp = new int[3]; 
    if (nums[0] > nums[2]) { 
     temp[0] = nums[0]; 
     temp[1] = nums[0]; 
     temp[2] = nums[0]; 
    } 
    else { 
     temp[0] = nums[2]; 
     temp[1] = nums[2]; 
     temp[2] = nums[2]; 
    } 
    return temp; 
} 

Или это:

public int[] maxEnd3(int[] nums) { 
    int []temp; 
    if (nums[0] > nums[2]) { 
     temp = new int[]{nums[0],nums[0],nums[0]}; 
    } 
    else { 
     temp = new int[]{nums[2],nums[2],nums[2]}; 
    } 
    return temp; 
} 

Когда вы объявляете его внутри, если заявление, она действует только между строкой объявления и закрывающей скобкой.

+0

Огромное спасибо, что у меня есть –

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