if语句的格式为:
if (条件判断1) {执行代码1;}
else if{条件判断2) {执行代码2;}
else {执行代码3;}
第一行是if语句必须的,可以不是用大括号,但我个人倾向是用,就算是一句,用大括号起码看起来更明确,是为了之前那一个if服务的。
使用的方法类似while,但是while的机理是先判断,符合条件,执行,执行完后再判断,依然符合条件,就继续执行;
而if的机理是符合条件,执行一遍,结束,不符合条件,直接跳过。
第二行的else if,表示假如第一个条件不符合,则判断这里的条件2,若符合,则执行代码2;
else if可以使用多个,if会根据要求依次判断,直到遇到符合条件的那一行;
第三行的else语句,表示如果前面都不符合,则执行代码3。
例如代码:
#include <iostream> int main() { using namespace std; int a; cout << "输入一个数字:" << endl; cin >> a; cout << "你输入的数字"; if (a > 10) { cout << "a>10" << endl; } else if (a > 5) { cout << "a>5" << endl; } else if (a > 3) { cout << "a>3" << endl; } else { cout << "a<=3." << endl; } system("pause"); return 0; }
假如输入11,则显示a>10;输入5,则显示a>3;假如输入0,则显示a<=3。
即,整个if语句里,只会执行第一个符合判断语句条件后面的代码。
另外:if的判断语句,实质上也是判断bool值的,即假如把第一个if(a>10)改为if(10),则无论输入什么,都只会执行cout << "a>10" << endl;
通过对调 关系运算符 左右两边的变量,来避免错误出现:
例如: if(a==10){cout<<a<<endl;} 这一行语句
当a被赋值10的时候,于是符合条件,执行代码。
假如,因为某些原因,我们少打了一个=,那么就会出现糟糕的事情。
例如,本来a=9,不符合条件,但是由于一个=是赋值,于是:
第一个问题,a被赋值10了;
第二个问题,必将输出a。
这个时候,我们改变思路,把a==10改成10==a,即:
if(10==a){cout<<a<<endl;}
那么即使我们少打了一个“=”,也没影响,编译器会直接提示我们,不能将变量a的值赋值给10(违法)。
注:①个人觉得,这个只适合使用“==”判断相等。因为不等,大于小于,都不影响,反而容易出错。
②适合一个常量和一个变量,不适合2个变量,或者2个常量(2个常量不可能被互相赋值)