1. Структура программы
C/C++ поддерживает три основные структуры выполнения программы:структура последовательности, структура выбора, структура цикла
- Последовательная структура: программы выполняются последовательно без переходов
- Структура выбора: в зависимости от того, выполняются ли условия, выборочно выполняются соответствующие функции
- Структура цикла: в зависимости от того, выполнено ли условие, выполнить определенный код несколько раз в цикле.
1.1 Выберите структуру
1.1.1 оператор if
Функция: выполнить оператор, удовлетворяющий условию
Три формы оператора if
- Однострочный формат оператора if
- Многострочный формат оператора if
- Мультиусловный
оператор
-
Однострочный формат оператора if:
if(条件){ 条件满足执行的语句 }
, пример:int main() { //选择结构-单行if语句 //输入一个分数,如果分数大于600分,视为考上一本大学,并在屏幕上打印 int score = 0; cout << "请输入一个分数:" << endl; cin >> score; cout << "您输入的分数为: " << score << endl; //if语句 //注意事项,在if判断语句后面,不要加分号 if (score > 600) { cout << "我考上了一本大学!!!" << endl; } return 0; }
-
Многострочный формат оператора if:
if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 };
, пример:
int main() {
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
if (score > 600)
{
cout << "我考上了一本大学" << endl;
}
else
{
cout << "我未考上一本大学" << endl;
}
return 0;
}
- Несколько условных операторов if:
if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}... else{ 都不满足执行的语句}
Пример:
int main() {
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
if (score > 600)
{
cout << "我考上了一本大学" << endl;
}
else if (score > 500)
{
cout << "我考上了二本大学" << endl;
}
else if (score > 400)
{
cout << "我考上了三本大学" << endl;
}
else
{
cout << "我未考上本科" << endl;
}
return 0;
}
Вложенный оператор if : в операторе if оператор if может быть вложен для достижения более точного условного суждения.
Требования к кейсу:
- Предложите пользователю ввести балл вступительного экзамена в колледж и сделайте следующие суждения на основе этого балла.
- Если набрано более 600 баллов, то он считается допущенным к первому курсу, если более 500 баллов, он будет допущен на второй курс, если более 400 баллов, он будет допущен к третий курс, а остальные на бакалавриат не принимаются;
- В одном балле, если результат больше 700, вы будете приняты в Пекинский университет, если он больше 650, вы будете приняты в университет Цинхуа, а если он больше 600, вы будете приняты в университет Жэньминь. Китая.
Пример:
int main() {
int score = 0;
cout << "请输入考试分数:" << endl;
cin >> score;
if (score > 600)
{
cout << "我考上了一本大学" << endl;
if (score > 700)
{
cout << "我考上了北大" << endl;
}
else if (score > 650)
{
cout << "我考上了清华" << endl;
}
else
{
cout << "我考上了人大" << endl;
}
}
else if (score > 500)
{
cout << "我考上了二本大学" << endl;
}
else if (score > 400)
{
cout << "我考上了三本大学" << endl;
}
else
{
cout << "我未考上本科" << endl;
}
return 0;
}
1.1.2 Тернарный оператор
Функция: реализовать простое суждение через тернарный оператор.
грамматика: 表达式1 ? 表达式2 :表达式3
объяснять:
Если значение выражения 1 истинно, выполнить выражение 2 и вернуть результат выражения 2;
Если значение выражения 1 ложно, выполнить выражение 3 и вернуть результат выражения 3.
Пример:
int main() {
int a = 10;
int b = 20;
int c = 0;
c = a > b ? a : b;
cout << "c = " << c << endl;
//C++中三目运算符返回的是变量,可以继续赋值
(a > b ? a : b) = 100;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
return 0;
}
Резюме: Преимущество тернарного оператора по сравнению с оператором if в том, что он короткий и аккуратный, а недостаток в том, что если вы используете вложенность, структура не ясна.
1.1.3 оператор переключения
Функция: выполнение операторов ветвления с несколькими условиями.
грамматика:
switch(表达式)
{
case 结果1:执行语句;break;
case 结果2:执行语句;break;
...
default:执行语句;break;
}
Пример:
int main() {
//请给电影评分
//10 ~ 9 经典
// 8 ~ 7 非常好
// 6 ~ 5 一般
// 5分以下 烂片
int score = 0;
cout << "请给电影打分" << endl;
cin >> score;
switch (score)
{
case 10:
case 9:
cout << "经典" << endl;
break;
case 8:
cout << "非常好" << endl;
break;
case 7:
case 6:
cout << "一般" << endl;
break;
default:
cout << "烂片" << endl;
break;
}
return 0;
}
Примечание 1: Тип выражения в операторе switch может быть только целочисленным или символьным.
Примечание 2: Если в case нет разрыва, программа будет продолжать выполняться вниз.
Резюме: По сравнению с оператором if структура switch понятна. при оценке нескольких условий эффективность выполнения высока, недостатком является то, что переключатель не может оценить интервал
1.2 Структура цикла
1.2.1 оператор цикла while
Функция: выполнить условие цикла, выполнить оператор цикла
грамматика: while(循环条件){ 循环语句 }
объяснять: Выполнять оператор цикла до тех пор, пока результат условия цикла истинен
Пример:
int main() {
int num = 0;
while (num < 10)
{
cout << "num = " << num << endl;
num++;
}
return 0;
}
Примечание. При выполнении оператора цикла программа должна обеспечивать выход для выхода из цикла, иначе возникнет бесконечный цикл.
1.2.2 оператор цикла do...while
Функция: выполнить условие цикла, выполнить оператор цикла
грамматика: do{ 循环语句 } while(循环条件);
**Примечание.** Отличие от while в том, чтоdo...while сначала выполнит оператор цикла, а затем оцените состояние цикла
Пример:
int main() {
int num = 0;
do
{
cout << num << endl;
num++;
} while (num < 10);
return 0;
}
Резюме: отличие от цикла while заключается в том, что do...while выполняет оператор цикла один раз перед оценкой условия цикла.
1.2.3 оператор цикла for
Функция: выполнить условие цикла, выполнить оператор цикла
грамматика: for(起始表达式;条件表达式;末尾循环体) { 循环语句; }
Пример:
int main() {
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
return 0;
}
Примечание. Выражения в цикле for должны быть разделены точкой с запятой.
1.2.4 Вложенные циклы
Функция: вложить еще один слой цикла в тело цикла для решения некоторых практических задач.
Пример:
int main() {
//外层循环执行1次,内层循环执行1轮
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << "*" << " ";
}
cout << endl;
}
system("pause");
return 0;
}
1.3 Оператор перехода
1.3.1 оператор разрыва
Функция: используется для прыжкавыберите структуруилипетлевая структура
Когда использовать перерыв:
- Появляется в условном выражении переключателя, функция состоит в том, чтобы завершить дело и выйти из переключателя.
- Появляется в операторе цикла, функция состоит в том, чтобы выйти из текущего оператора цикла.
- Появляется во вложенном цикле, выпрыгивая из ближайшего оператора внутреннего цикла
Пример 1:
int main() {
//1、在switch 语句中使用break
cout << "请选择您挑战副本的难度:" << endl;
cout << "1、普通" << endl;
cout << "2、中等" << endl;
cout << "3、困难" << endl;
int num = 0;
cin >> num;
switch (num)
{
case 1:
cout << "您选择的是普通难度" << endl;
break;
case 2:
cout << "您选择的是中等难度" << endl;
break;
case 3:
cout << "您选择的是困难难度" << endl;
break;
}
return 0;
}
Пример 2:
int main() {
//2、在循环语句中用break
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
break; //跳出循环语句
}
cout << i << endl;
}
return 0;
}
Пример 3:
int main() {
//在嵌套循环语句中使用break,退出内层循环
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (j == 5)
{
break;
}
cout << "*" << " ";
}
cout << endl;
}
return 0;
}
1.3.2 оператор продолжения
роль: воператор цикла, пропустить оставшиеся невыполненными операторы в этом цикле и продолжить выполнение следующего цикла
Пример:
int main() {
for (int i = 0; i < 100; i++)
{
if (i % 2 == 0)
{
continue;
}
cout << i << endl;
}
return 0;
}
Примечание: continue не завершает весь цикл, а break выпрыгнет из цикла.
1.3.3 оператор перехода
Функция: оператор безусловного перехода
грамматика: goto 标记;
Объяснение: Если имя метки существует, при выполнении оператора goto произойдет переход к позиции метки.
Пример:
int main() {
cout << "1" << endl;
goto FLAG;
cout << "2" << endl;
cout << "3" << endl;
cout << "4" << endl;
FLAG:
cout << "5" << endl;
return 0;
}
Примечание. Не рекомендуется использовать оператор goto в программе, чтобы не вызывать путаницы в ходе выполнения программы.