Часть I. Базовые сведения о программировании на языке C#
Пояснение.
В программе принято, что пробел является разделителем
слов. Поэтому алгоритм такой: вводится строка текста и передается на
анализ в цикл, в котором она просматривается на наличие пробела.
Пробел ищется с помощью функции
s.IndexOf(" ")
, которая выдает
номер позиции первого встретившегося пробела от начала строки. Если
пробел не найден, функция выдает –1. Поэтому на случай сравнения
результата
s.IndexOf(" ")
с –1 заготовлена константа
int ind=-1;
. Если
пробел найден, то, начиная со следующей позиции, из строки выделяет-
ся оставшаяся часть строки и запоминается снова в переменной
s
. То
есть
s
сужается, чтобы в оставшейся части можно было снова искать
пробел. Поэтому организован цикл по строке. Если пробел найден, то в
счетчик слов
w
добавляется единица. Когда от строки осталось послед-
нее слово и в нем естественно уже нет пробела, внутренний цикл по
строке завершается, но в счетчик слов
w
добавляется единица, чтобы
учесть последнее слово строки, в котором не обнаружен пробел. Далее
идет переход на внешний цикл, на ввод новой строки. В этой программе
мы встречаем новую операцию
&&
— конъюнкцию или операцию "логи-
ческое И". Она выдает истину, если оба ее операнда истинны. В против-
ном случае ее результат — ложь. Отсюда то, что в заголовке
while
во
внутреннем цикле программы, читается так: "если при вводе строки не
была нажата комбинация клавиш + и в строке найден пробел,
перейти на выполнение тела
while
". И еще один момент. Заметьте, что
для вывода пробела на экран в необходимых функциях
WriteLine()
до-
бавлены управляющие символы
'\n'
— перевод строки.
П
РИМЕЧАНИЕ
Рассмотренное приложение годится только для идеального текста, ко-
гда слова отделены друг от друга одним и только одним пробелом. На
самом деле текст бывает "грязным": между словами более одного
пробела или вообще — только знаки препинания, или присутствуют
знаки табуляции и т. д. В приложении это не рассматривалось, чтобы
не усложнять основную задачу — изучение языка, а не машинных ал-
горитмов.
Тип
var
Начиная с версии Visual C# 3.0, объявляемые в области метода пере-
менные могут иметь неявный тип
var
. Локальная переменная с неявным
типом имеет строгую типизацию, как если бы тип был задан явно, толь-
ко тип определяет компилятор на основании использования такой пере-
менной в программе. Следующие два объявления
i
функционально яв-
ляются эквивалентами:
Do'stlaringiz bilan baham: |