前言:
本文主要讲解在C++中的wile语句。
一,wile语句。
1,使用。
语法:
wile (条件){
语句;
}
当条件判断为ture时,对括号内的语句及逆行循环处理。
例如:
#include <iostream>
#include <string>
using namespace std;
int main() {
int a;
int i = 1;
cout << "请输入循环次数:";
cin >> a;
while( i <=a)
{
cout <<"循环了"<< i << "次"<<endl;
i++;
}
cout << "循环结束" << endl;
cout << "一共循环了"<<a<<"次" << endl;
return 0;
}
运行结果为:
在使用循环时应注意条件,若条件永远为ture,就会一直循环下去。
2,说明条件的省略。
例如:
#include <iostream>
#include <string>
using namespace std;
int main() {
int a;//定义一个整数变量a
while (a)//当a不为0时,循环执行;当a为0时,循环结束
{
cout<<"输入整数(数字为0时终止): ";
cin >> a;//获取用户输入的整数
cout<<"输入的整数是: "<<a<<endl;
}
cout<<" 循环结束"<<endl;
return 0;
}
运行结果为:
这段代码在处理用户输入的值时,会将输入的数字转换为ture或false进行执行。在其中,ture为1,false为0;当用户输入0时,条件为false,循环语句终止。
等效于:
#include <iostream>
#include <string>
using namespace std;
int main() {
int a;//定义一个整数变量a
while (a !=0)//当a不为0时,循环执行;当a为0时,循环结束
{
cout<<"输入整数(数字为0时终止): ";
cin >> a;//获取用户输入的整数
cout<<"输入的整数是: "<<a<<endl;
}
cout<<" 循环结束"<<endl;
return 0;
}
二,do-whlie语句。
在do-whlie语句中,该语句最后条件判断为ture时,进行括号内的循环处理。
语法:
do{
语句1
}whlie(条件);
do-whlie语句与whlie语句的区别是,do-whlie语句会先执行括号内循环,在判断表达式的条件是否为ture。
whlie语句会在循环开始前判断条件,而do-whlie语句会在进行一遍后才判断条件,所以即使条件判断错误,也至少会进行一次循环。
例如:
#include <iostream>
#include <string>
using namespace std;
int main() {
int a;//定义一个整数变量a
do
{
cout<<"输入整数(数字为0时终止): ";
cin >> a;//获取用户输入的整数
cout<<" 输入的整数是: "<<a<<endl;
} while (a);
cout<<" 循环结束"<<endl;
return 0;
}
运行结果:
whlie语句会在循环开始前判断条件,而do-whlie语句会在进行一遍后才判断条件,所以即使条件判断错误,也至少会进行一次循环。
例如:
#include <iostream>
#include <string>
using namespace std;
int main() {
int a;//定义一个整数变量a
int b=1;//定义一个整数变量b并赋初值为1
cout<<" 请输入循环次数:";
cin>>a;//输入循环次数
do{
cout<<"第"<<b<<"次输循环 "<<endl;
b++;
} while (b<=a);
cout<<" 循环结束"<<endl;
return 0;
}
运行结果为:
三,语句嵌套。
目前为止,已经学习过很多不同结构的语句,这些语句可以相互嵌套,组合使用。
例如之前写过的四则运算计算器:
#include <iostream>
using namespace std;
int main()
{
double a, b;//定义变量a,b用于存储所输入的四则运算的两位数。
char c;//定义变量c用于存储所输入的四则运算的运算符。
double d;//定义变量d用于存储四则运算的结果。
cout << "请输入一个四则运算表达式(例如:1 + 2):";
cin >> a >> c >> b;//获取输入四则运算表达式,并赋值给相关变量。
if (c == '+')
{
d = a + b;
cout << a << " + " << b << " = " << d << endl;
}//如果c为+,则执行加法运算,并输出结果。
else if (c == '-'){
d = a - b;
cout << a << " - " << b << " = " << d << endl;
}//如果c为-,则执行减法运算,并输出结果。
else if (c == '*'){
d = a * b;
cout << a << " * " << b << " = " << d << endl;
}//如果c为*,则执行乘法运算,并输出结果。
else if (c == '/'){
if (b == 0) {
cout << "除数不能为0" << endl;
}//如果除数b为0,则输出错误信息。
else {
d = a / b;
cout << a << " / " << b << " = " << d << endl;
}
}//如果c为/,则执行除法运算,并输出结果。
else {
cout << "输入的运算符不正确" << endl;
}
}
运用了if-else语句判断加减乘除的运算符号,同时,除数不能为零,又在其中嵌套了一个if判断。
同时,也可以循环之间相互嵌套。
例如:
#include <iostream>
using namespace std;
int main(){
int a,b,c;//a表示金字塔层数,b表示空格数,c表示星号数
cout<<"请输入金字塔层数:";
cin>>a;//输入金字塔层数
for (b=1;b<=a; b++){
for (c=1;c<=a-b;c++){//获取每行空格数,当b=1时,空格数为a-1
cout<<" ";//输出空格
}
for (c=1;c<=2*b-1;c++){//获取每行星号数,当b=1时,星号数为1
cout<<"*";//输出星号
}
cout<<endl;//换行
}
return 0;
}
输出了一个可自定义层数的金字塔,运行结果为: