'если' и 'для' вопросов цикла - PullRequest
0 голосов
/ 27 октября 2011

Это будет мой последний вопрос на вечер и некоторое время. Я прошел 100-балльную оценку Java, и теперь я застрял на последних двух пунктах. Если бы кто-нибудь мог мне помочь, это было бы очень признательно. Я устала, чувствую себя как первоклассница и просто хочу покончить с этим!

Изучите два нижеприведенных метода, а затем выберите только правильные параметры.

public char[] methodA()
{
  char[] alphas = {'s', 't', 'e', 'a', 'm'};
  char temp = alphas[0];
  int i = 0;
  while (i < alphas.length - 1)//1
  {
    alphas[i] = alphas[i+1]; //2
    i++;
  }
  alphas[alphas.length-1]=temp;
  return alphas;
}
public char methodB()
{
  char [] alphas = {'s','a','u','s','a','g','e'};
  char first = alphas[0];
  for (int i= 1; i < alphas.length; i++) //3
  {
    if (alphas[i] < first) //4
    {
      first = alphas[i];
    }
  }
  return first;
}
  1. Оператор присваивания, помеченный // 2, поместит копию символа элемент один справа от текущего элемента в альфа в текущий элемент в альфа.

  2. Заголовок цикла for, помеченный // 3, будет оценен 7 раз.

  3. Оператор if, помеченный // 4, обновит значение, хранящееся в сначала переменная, если значение содержится в текущем элементе в альфа предшествует текущему значению первого.

  4. Логическое условие в строке, помеченной // 1, оценивается как многократно ложно, пока я не приму значение 4.

  5. Возвращаемое значение при вызове метода A представляет собой массив символов, содержащий значения 't', 'e', ​​'a', 'm' и 's'.

  6. Возвращаемое значение из вызывающего метода B - это символ 'u'.

Я верю 1, чтобы быть правдой. Не уверен почему. Я думаю, что 2 ложно, поскольку цикл for оценивается 6x, а не 7. Не уверен на 3 или 4. 5 Я должен быть правдой 6 Я должен быть ложным.

Если кто-нибудь может помочь, я должен им пиво, печенье и обниматься !!

Ответы [ 2 ]

1 голос
/ 27 октября 2011
  1. Это правда, потому что alphas[i] = alphas[i+1], по сути, возьмет элемент в позицию i и заменит его следующим элементом в массиве в i + 1 (или другим способом сказать, что его смежныеэлемент).

  2. Я считаю, что это неверно, ключевое слово здесь evaluated.Цикл оценивает точку остановки, проверяет условия выхода, а затем выбрасывает.Таким образом, он завершит оценку 1, 2, 3, 4, 5, 6, 7 <--- оценит значение и нажмет </p>

  3. Это будет верно.выражение if (alphas[i] < first) спрашивает, больше ли значение, хранящееся в first, чем значение в alphas[i], или наоборот ... если alphas[i] меньше first.По сути, это выполнение алгоритма макс / мин, поскольку конечное число в first будет наименьшим значением в массиве alphas.В этом случае буквы будут оцениваться на основе их значений ascii.

  4. Это неверно.Выражение будет иметь значение true до 4. Если бы это было не так, тогда вопрос 1 не был бы верным, потому что он просто выбросил бы IndexOutOfBoundsException.

  5. Это верно, потому чтоон берет соседний символ и помещает его в текущую позицию, затем строка alphas[alphas.length-1]=temp переводит первый символ в последнюю позицию.Точнее говоря, через некоторое время ваш массив будет выглядеть следующим образом: { t, e, a, m, m }, после последней строки он завершит набор с { t, e, a, m, s }

  6. Последний равен false.Как я уже упоминал в вопросе 3, он, по сути, выполняет минимальный поиск.символ u имеет большее значение ascii, чем любая другая буква в последовательности.a - самая низкая буква в наборе.

Отличная работа при попытке.

0 голосов
/ 27 октября 2011

1 истинно (a [i + 1] справа от a [i], поэтому a [i] = a [i + 1] копирует значение справа до текущего)

2 верно, потому что условие цикла оценивается 7 раз - 6 раз как истинное, в результате чего тело выполняется 6 раз, а затем 1 раз как ложное, чтобы разорвать цикл.

3 звучит как истина, значениенапример, «b» считается «предшествующим» значению типа «d» (сравнение числовых кодов ascii)

4 верно, потому что условие 4 <(5 - 1) ложно </p>

5 верно, так как вы думаете,

6 неверно - должно вернуть 'a'

, пожалуйста, пропустите обниматься!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...