Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
return (char) 0;
}
getloc++;
return q[getloc];
}
}
// продемонстрировать класс Queue в действии
class QDemo2 {
public static void main(String args[]) {
// построить пустую очередь для хранения 10 элементов
Queue ql = new Queue(10);
char name[] = {'Т', 'o', 'm'};
// построить очередь из массива
Queue q2 = new Queue(name);
char ch;
int i;
// поместить ряд символов в очередь ql
for(i=0; i < 10; i++)
ql.put((char) ('A1 + i));
// построить одну очередь из другой очереди
Queue q3 = new Queue(ql);
// показать очереди
System.out.print("Contents of ql: ");
for(i=0; i < 10; i++) {
ch = ql.get();
System.out.print(ch);
}
System.out.println("\n");
System.out.print("Contents of q2: ");
for(i=0; i < 3; i++) {
ch = q2.get();
System.out.print(ch);
}
System.out.println("\n");
System.out.print("Contents of q3: ");
for(i=0; i < 10; i++) {
ch = q3.get();
System.out.print(ch);
}
}
}
```
Результат выполнения данной программы выглядит следующим образом:
```
Contents of ql: ABCDEFGHIJ
Contents of q2: Tom
Contents of q3: ABCDEFGHIJ
```
Рекурсия
В Java допускается, чтобы метод вызывал самого себя. Этот процесс называется рекурсией, а метод, вызывающий самого себя, — рекурсивным. Вообще говоря, рекурсия представляет собой процесс, в ходе которого нечто определяет самое себя. В этом отношении она чем-то напоминает циклическое определение. Рекурсивный метод отличается в основном тем, что он содержит оператор, в котором этот метод вызывает самого себя. Рекурсия является эффективным механизмом управления программой.
Классическим примером рекурсии служит вычисление факториала числа. Факториал числа N представляет собой произведение всех целых чисел от 1 до N. Например, факториал числа 3 равен 1x2x3, или 6. В приведенном ниже примере программы демонстрируется рекурсивный способ вычисления факториала числа. Для сравнения в эту программу включен также нерекурсивный вариант вычисления факториала числа.
// Простой пример рекурсии,
class Factorial {
// Рекурсивный метод,
int factR(int n) {
int result;
if(n==l) return 1;
// Рекурсивный вызов метода factRO .
result = factR(n-l) * n;
return result;
}
// Вариант программы, вычисляющий факториал итеративным способом,
int factl(int n) {
int t, result;
result = 1;
for(t=l; t <= n; t++) result *= t;
return result;
}
}
class Recursion {
public static void main(String args[]) {
Factorial f = new Factorial();
System.out.println("Factorials using recursive method.");
System.out.println("Factorial of 3 is " + f.factR(3));
System.out.println("Factorial of 4 is " + f.factR(4));
System.out.println("Factorial of 5 is " + f.factR(5));
System.out.println();
System.out.println("Factorials using iterative method.");
System.out.println("Factorial of 3 is " + f.factl(3));
System.out.println("Factorial of 4 is " + f.factl(4));
System.out.println("Factorial of 5 is " + f.factl(5));
}
}
Ниже приведен результат выполнения данной программы.
Factorials using recursive method.
Factorial of 3 is 6
Factorial of 4 is 24
Factorial of 5 is 120
Factorials using iterative method.
Factorial of 3 is 6
Factorial of 4 is 24
Factorial of 5 is 120