Class primer_for5
{
static Scanner reader = new Scanner(System.in);
public static void main(String[] args)
{
int x, count=0;//счетчик случаев countстанавливается в начальное значение, равное 0
for (int i=1; i<=10; i++)//цикл из 10 повторов, счетчик повторов – переменная i
{
x=(int)(90*Math.random()+10);//генерируется случайное целое двузначное
//положительное число
System.out.print(x+" ");// случайное число выводится на экран
if (x%2==0)
count++;//если случайное число – четное, счетчик случаев увеличивается на 1
}
System.out.println(" Число четных чисел в серии="+count);// Итоговое значение
// переменной-счетчика случаев выводит на экран только(!) после завершения цикла
}
}
Обратите внимание, что команда "увеличить на 1 счетчик случаев" (count++;) не записана в фигурных скобках: это допускается в тех случаях, когда блок команд, которые надо выполнить в случае, если условие верно, содержит только одну-единственную команду.
Разумеется, при необходимости можно использовать не одну, а две, три и даже более переменных-счетчиков. Однако в тех случаях, когда необходимое для реализации поставленной задачи количество переменных-счетчиков становится больше 3-4-х, используются не отдельные переменные, а так называемый массив счетчиков – о таких инструментах речь пойдет в последних разделах курса.
Раздел №17.
Вычисления с использованием команды повтора – Цикл for
Очень большую группу задач составляют те, в которых есть необходимость в подсчете не количества значений, соответствующих определенному условию, а суммы таких значений. В этих случаях принято говорить, что следует использовать сумматор (переменную-сумматор). Это могут быть задачи, в которых надо определить общий вес товаров, доставляемых на склад, или общую сумму, которую должен заплатить покупатель в магазине за покупки, или среднюю оценку класса (а для подсчета среднего арифметического ведь надо сначала подсчитать сумму оценок) – и так далее.
Использование "сумматора" в цикле
Работа с переменной-сумматором в цикле похоже на работу со "счетчиком случаев" (о чем мы достаточно подробно говорили в предыдущей теме). Сходство это заключается в первую очередь в том, что сумматор, как и "счетчик случаев", необходимо обязательно обнулить перед началом использования (как правило – до начала цикла).
Однако есть и чрезвычайно существенная разница между использованием сумматора и "счетчика циклов":
· "счетчик случаев" в каждом "подходящем случае" увеличивается, как правило, на 1
· "сумматор" же при каждом "подходящем случае" увеличивается на некоторое значение (как правило – на значение, связанное с сутью задачи).
Рассмотрим ситуацию: покупатель в магазине расплачивается за 30 покупок, и надо определить количество покупок, стоимость каждой из которых превышает 500 рублей, а также определить общую сумму всех сделанных им покупок.
Примем решение, что в классе используется переменная-счетчик случаев count, а также переменная-сумматор sum.
Перед началом цикла обе переменные необходимо обнулить, то есть записать:
count=0;
sum=0;
В теле же цикла (он будет повторяться 30 раз – по числу покупок), подсчет количества товаров, стоимость которых превышает 500 рублей, будет выполняться командой (решим, что переменная х содержит значение, указывающее на стоимость товара в каждой из покупок):
if (x>500) count++;
Это означает, что мы используем переменную-счетчик для подсчета количества соответствующих покупок.
А вот подсчет общей стоимости всех купленных товаров будет выполняться командой:
sum=sum+x
Это означает, что значение переменной-сумматора sum каждый раз (как видите, нет в этой команде никакого условия) увеличивается на значение переменной х.
Кстати, эту команду можно записать в форме, принятой в языке Java:
sum+=x
В итоге класс, о котором мы говорим, может выглядеть так:
import java.util.*;