// - "Talk to me like I'm a 3 year old!" Programming Lessons -
//
// $Author: Ben Humphrey digiben@gametutorials.com
//
// $Program: Questions
//
// $Description: Asks/Answers questions using if/else statements.
//
// $Date: 5/18/00
//
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com
#include <stdio.h> // Необходимо включить этот файл для использования некоторых функций
void main() // Начало нашей программы
{ // Начало функции main
int age=0; // Инициализация целочисленной переменной для возраста
printf("How old are you? ");
// Печать на экран вопроса о возрасте пользователя
// "Сколько вам лет?"
scanf("%d", &age);
// Чтение ответа после того, как пользователь нажмет enter.
// Вы видите символ "&" перед переменной.
// Здесь у многих начинающих программистов возникают сложности.
// scanf() это функция, которая берет 2 параметра.
// Первый - это формат ввода пользователя... число, символ или строка символов.
// Второй - переменная, в которой сохраняется все, что введет пользователь.
// Именно в этом месте начинаются сложности.
// Если вы передаете в функцию переменную, и функция ИЗМЕНЯЕТ ее, то
// когда функция завершается, переменная НЕ ИЗМЕНИТСЯ, если функция не
// получит адреса переменной в памяти. Вы даете функции адрес в памяти,
// помещая впереди переменной символ "&". Если этого не сделать,
// программа зависнет после ввода возраста.
// Это ОГРОМНАЯ область, которая будет подробно обсуждаться позже.
// Следует знать, что когда что-либо передается в функцию, то функция
// делает собственную локальную копию этого. Если вы хотите, чтобы
// функция изменила то, что передается, вы должны использовать &.
// Если вы не понимаете всего этого - не беспокойтесь.
// Все это будет объясняться позже, когда мы начнем использование
// функций и указателей.
// А сейчас, приготовьтесь к использованию IF и ELSE!
if (age > 20) // Это выражение IF (если). Оно означает:
{ // " ЕСЛИ age больше 20 "
printf("You're over 20 huh?\n"); // Напечатать это сообщение ("Вам больше 20-ти?")
} // Конец выражения if
if (age > 30) // Здесь проверяется является ли введенный возраст больше 30
printf("You're over 30!?\n"); // Напечатать это сообщение ("Вам больше 30!?")
// Вы наверное заметили, что в выражении выше не было скобок "{" "}".
// Необязательно использовать скобки, если после условия стоит
// единственная строка кода - это верно для циклов while, for,
// или выражения if/else.... Но их использование является хорошей
// привычкой и облегчает чтение программы. Возможно, позже вы захотите
// что-то добавить в ваши циклы или выражения, поэтому вы можете заранее
// поставить их.
// Если пользователь ввел возраст 35, программа напечатает оба сообщения.
// Но если было введено например 25, напечатается только первое.
if (age < 20) { // Еще один стиль программирования.-. написание "{" сразу после условия.
printf("You're a young'n!\n");
}
// На работу программы это не влияет. Некоторые языки требуют этого,
// но C/C++ очень гибкий язык. Можно даже написать:
// " if(age < 20) printf("You're a young'n!\n"); " и это будет работать.
// Однако очень важно использовать ";". Они дают компилятору понять
// где начинается следующее выражение. Можно написать так:
// " age++; age--; age = age; "
// Эти строки прибавляют 1 к age, отнимают 1 от age, затем
// присваивают значение age переменной age...
if (age < 20 && age > 12) // Здесь кое-что новое. Символ "&&" означает "и".
{ // Выражение означает "if ( age меньше 20 И больше 12) "
printf("Being in your teens can tough...\n");
} // Печать сообщения
// Вы часто будете использовать такие выражения. Также имеются:
// "!=" - НЕ РАВНО и "||" - ИЛИ
// Можно проверить, истинно ли хотя бы одно из выражений, используя
// "||" - оператор ИЛИ.
if (age == 100) // Здесь проверяется условие "age равно 100".
// Это отличается от записи "age = 100"
printf("WOW! What's your secret!?\n");
// "age == 100" проверяет, равно ли значение age 100,
// в то время как "age = 100" присваивает значение 100 переменной age.
if (age > 50) // Еще один пример использования выражения IF.
printf("Life after 50 can be great!\n");
else // Если age не больше 50, напечатать другое выражение (ниже)
printf("You've still got a LONG way to go...\n");
// Выражения IF/ELSE записываются так.
// " if( (Выражение истинно) )
// " (выполнить 1)
// " else
// " (выполнить2 вместо 1)
// Вам наверное интересно узнать об отступах в условных выражениях.
// Они нужны для улучшения читаемости кода.
// Если вы хотите, чтобы вам помогали с вашей программой, вам необходимо комментировать
// и форматировать текст вашей программы, иначе никто не захочет даже попробовать.
// Помните, вы можете и наверное должны использовать { }
// if (условие истинно)
// {
// (выполнить это)
// }
// else
// {
// (выполнить это вместо того)
// }
// Так гораздо легче понять программу, даже если у вас всего одна строка кода в этом выражении.
} // Конец функции main и программы
// © 2001 GameTutorials
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com
|