一.if判斷語句
1.程序中的判斷:
if (要執行的判斷,最后的返回值要是bool型的數據) {如果為真,要執行的代碼段;
}
#include"iostream"
using namespace std;int main() {int ans;cin >> ans;if (ans > 1000) {cout << "ans大于1000" << endl;}
}
二.if else語句
應用場景:
在前面我們所了解的if語句中只能對一種情況進行判斷,若滿足,則執行,那么,不滿足怎么辦呢?
回答就是if else語句
1.程序中的判斷:
#include"iostream"
using namespace std;int main() {if (條件判斷語句) {若為真,則執行的代碼段; } else {若為假,則執行的代碼段; }
}
2.簡單舉例:
#include"iostream"
using namespace std;int main() {int month_money;cin >> month_money;if (month_money > 50000) {cout << "高富帥" << endl;} else {cout << "高帥" << endl;}
}
三.else if語句
應用場景:在某些情況下,判斷條件不止一個,可能存在多個,那么這時候我們就需要用到else if語句了
1.程序中的判斷:
#include"iostream"
using namespace std;int main() {if (條件判斷1) {若1為真,執行的代碼段; } else if (條件判斷2) {若2為真,執行的代碼段; } else if (條件判斷n) {若n為真,執行的代碼段; } else {上面所有的條件全都不滿足時執行的代碼段; }
}
2.舉例:
#include"iostream"
using namespace std;int main() {int month_money;cin >> month_money;if (month_money < 10000) {cout << "小高富帥" << endl;} else if (month_money < 30000){cout << "高富帥" << endl;} else if (month_money < 50000) {cout << "大高富帥" << endl;} else {cout << "老高富帥" << endl;}
}
四.邏輯判斷語句的嵌套
1.應用場景:
在很多場景中,并不僅僅只是多個并列條件,還會有滿足前置條件才會二次判斷的多層判斷需求,我們要滿足這種判斷需求就需要用到嵌套判斷語句
2.程序中的嵌套判斷:
#include"iostream"
using namespace std;int main() {if (條件1) {代碼段;if (滿足條件1后的條件2) {代碼段; } else {// 代表滿足條件一后不滿足條件2代碼段; }} else {// 不滿足條件1代碼段; }
}
3.舉例:
#include"iostream"
using namespace std;int main() {int age;cout << "請輸入您的年齡:" << endl;cin >> age;if (age >= 18) {cout << "您在生理上已經成年了" << endl;int salary;cout << "請輸入您的每月工資" << endl;cin >> salary;if (salary > 8000) {cout << "您已經足夠養活自己,過上還不錯的日子了" << endl;} else {cout << "加油" << endl; }} else {cout << "小朋友好好學習哦" << endl;}
}
五.基于邏輯運算符完成復雜判斷
若有以下三種場景:
①:基于if else組合完成條件達成和未達成的代碼執行
②:基于else if完成多個并行條件的判斷
③:基于嵌套if完成多條件同時滿足的判斷
在場景不過于復雜的前提下,我們可以使用邏輯運算符快速完成上述需求
也就是&&(與),||(或),!(非)
1.&&
if (條件1 && 條件2) {只有條件1和2同時滿足才會執行代碼段;
}
2.||
if (條件1 || 條件2) {條件1或2只要滿足一個即可執行代碼段;
}
3.!
if (!條件) {只有當條件不成立才會執行代碼段;
}
六.switch控制語句
1.應用場景:
在程序中經常有許多場景需要用到多條件判斷,針對多條件判斷的場景,我們需要用到switch控制語句
2.程序中:
#include"iostream"
using namespace std;int main() {switch (case) {case 1:代碼段;break;case 2:代碼段;break;...case n:代碼段;break;default:若沒有任何case符合,則執行這里的代碼段; }
}
注意:
①:在switch語句中僅僅做值匹配(相等的判斷)
②:break語句可以中斷switch語句,否則就會繼續向下執行其他的case段,包括default段,直到執行完或者遇到break為止
3.舉例:
#include"iostream"
using namespace std;int main() {int date;cout << "請輸入今天是周幾(數字1-7):";cin >> date;switch (date) {case 1:cout << "今天是周一" << endl;break;case 2:cout << "今天是周二" << endl;break;case 3:cout << "今天是周三" << endl;break;case 4:cout << "今天是周四" << endl;break;case 5:cout << "今天是周五" << endl;break;case 6:cout << "今天是周六" << endl;break;case 7:cout << "今天是周天" << endl;break;default:cout << "您的輸入有誤" << endl;break;}
}
七.while循環語句
在生活中我們普遍循環重復著一天又一天,在程序中也同樣有著循環,并且其還占著舉足輕重的作用
1.程序中的循環:
while (條件表達式) {循環體代碼;
}
在while循環中,只要滿足了while循環中的條件,那么就會一直執行while循環中的代碼
2.舉例:
#include"iostream"
using namespace std;int main() {int count = 1;cout << "好習慣的養成需要21天" << endl;while (count <= 21) {cout << "堅持學習" << endl;count++;}
}
3.do while循環
do while循環只是while循環的一個變換形式,與while循環在功能上的不同點在于while循環只會在條件判斷成立時才執行循環體中的代碼,而do while循環會首先執行一次循環體中的代碼再判斷是否符合條件,是否進入while循環中
4.程序中的do while循環:
do {循環體;
} while (條件表達式)
5.while循環嵌套
嵌套的思想我們在之前就已經提到過,因此直接上一個簡單案例幫助大家理解吧
#include"iostream"
using namespace std;// 輸出九九乘法表
int main() {int i = 1;while (i <= 9) {int j = 1;while (j <= i) {cout << j << "*" << i << "=" << i * j << "\t";j++;}i++;cout << endl;}
}
八.for循環語句
除了while循環語句之外,C++還提供for循環語句完成循環
1.程序中的for循環語句:
#include"iostream"
using namespace std;int main() {for (循環因子初始化語句; 條件判斷; 循環因子變化語句) {循環體; }
}
2.while循環與for循環的區別:
while循環中僅有條件判斷,這是語法的要求,而循環因子是用戶自行提供的
for循環中包含條件判斷,循環因子初始化,循環因子變化,這些都是for循環語法中自帶的功能
3.簡單案例:
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 21; i++) {cout << "好好學習天天向上" << endl;}
}
4.for循環中的嵌套
同樣還是嵌套的概念,直接給出簡單的案例幫助大家理解
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 21; i++) {cout << "好好學習天天向上" << endl;for (int j = 1; j <= 3; j++) { // 這里作為循環因子的兩個變量名不能相同,你應該能想明白是為什么吧 cout << "每天好好學習的獎勵就是豐盛美味的一日三餐" << endl;}}
}
九.變量的作用域
1.前置知識:
在C++代碼中,變量并不是隨時隨地都可以訪問的,而是要看是否處于該變量的作用域中
2.怎么區分一個變量的作用域:
看變量定義在哪個大括號({})中,它被定義的大括號就是它的作用域(當然不包括它還沒被定義的時候所在的位置)
#include"iostream"
using namespace std;int main() {// 上方不屬于temple的定義域,因為還沒被定義 int temple;// 在這之下的都是temple的作用域 for (int i = 1; i < 9; i++) {int ans;// ans的作用域僅限于每次它被for循環定義之后,在for循環中起作用 }// 這下面還屬于ans的定義域嗎?當然不是,因為ans只被局限于for循環中,根本出不來
}
十.循環終端語句
1.前言:
無論是while循環還是for循環都是重復性的執行特定的操作,但是如果出現了某種情況,我想要跳過滿足某種條件的某次循環,或者一旦滿足了某種條件,我就中止這個循環,那么改怎么辦呢?
2.continue和break關鍵字
我們使用continue關鍵字跳過某一次循環,直接執行下一次
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) // 如果i等于3,那么跳過本次循環 continue;cout << i << endl;}
}
我們使用break關鍵字直接中止整個循環
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) // 如果i等于3,那么中止整個for循環 break;cout << i << endl;}
}
注意:無論是continue還是break,都是在執行到它們的位置之后才會進行跳過或者終止,那么在它們之前書寫的代碼是不受影響的
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 5; i++) {cout << "上方的代碼" << endl; // 正常輸出了5次,不受continue的影響 if (i == 3) // 如果i等于3,那么跳過本次循環 continue;cout << i << endl;}
}
#include"iostream"
using namespace std;int main() {for (int i = 1; i <= 5; i++) {cout << "上方的代碼" << endl; // 輸出了三次 if (i == 3) // 如果i等于3,那么中止整個for循環 break;cout << i << endl;}
}
十一.goto語句
1.goto語句的作用:
提供無條件跳轉的功能
2.標簽的概念:
我們定義一個標簽配合goto進行使用,一旦遇到goto語句,就跳轉到該標簽的位置開始按順序執行代碼
3.標簽的定義方式:
標簽名:
4.goto語句的使用語法:
標簽1:代碼;
標簽2:代碼;
...
標簽n:代碼;
goto 標簽5;
5.簡單案例:
#include"iostream"
using namespace std;int main() {// 只要i小于等于10就會不斷跳回到loop的位置重新開始執行 int i = 1;loop:cout << i << " ";i++;if (i <= 10)goto loop;cout << endl;
}