★阿宅救援团★C++入门【五】语句
本帖最后由 兰陵笑忘生 于 2014-5-26 00:29 编辑★阿宅救援团★C++入门【一】VC6.0安装与使用
★阿宅救援团★C++入门【二】变量的声明和定义
★阿宅救援团★C++入门【三】操作符
★阿宅救援团★C++入门【四】数组
★阿宅救援团★C++入门【五】语句
本节内容:
if语句
switch语句
for循环语句
while循环语句
do while语句
C++中,语句大多以分号结束,比如说 num++;就是一条语句
比较特殊的如空语句 ;
栗子:if(condition)
{
//do something
}
else
{
;//do no thing
}
【一】if语句
if 语句根据特定表达式是否为真来有条件地执行另一个语句。if 语句有两种形式:其中一种带 else 分支而另一种则没有。根据语法结构,最简单的 if 语句是这样的: if (condition) statement其中的 condition 部分必须用圆括号括起来。它可以是一个表达式,例如: if (a + b > c) {/* ... */}或者一个初始化声明,例如: // ival only accessible within the if statement //ival的作用域仅存在在if语句中 if (int ival = compute_value()) {/* ... */} //这边ival的值只要大于等于1那么花括号里的语句都能执行
对于statement语句必须用花括号括起来~如果不括起来的话~作用域只有一行~
比如说段代码:
if (minVal > ivec)
minVal = ivec;
occurs = 1; // executed unconditionally: not part of the if如果if中的条件成立的话~只会执行minVal的复制操作,
occurs=1这句不管if中的条件成不成立都会无条件执行,因为他不在if的控制范围内了。
if else 语句的语法形式为: if (condition) statement1
else
statement2如果 condition 为真,则执行 statement1;否则,执行 statement2:
栗子:判断性别并输出相应的称谓。
string first_name="Smith";
char gender;
cin>>gender;
if(gender=='f')
cout<<"Mrs Smith!"<<endl;
else if(gender=='m')
cout<<"Mr Smith!"<<endl;
else
cout<<"please enter the right gender"<<endl;
【二】switch语句
当要写很多if语句时,比如说根据数字1-12相应输出对应的月份名称 那就要写12条if语句或更多~
会显得非常累赘 这个时候用witch语句就显得很简介~
语句结构:
switch(表达式)
{
case 常量表达式1 : 语句1
case 常量表达式2: 语句2
。
。
default:语句n
}
栗子:按照考试成绩等级打印出百分之分数段
switch(grade)
{
case 'A' : cout<<"90~100\n";
case 'B' : cout<<"80~90\n";
case 'C' : cout<<"70~80\n";
case 'D' : cout<<"60~70\n";
default:cout<<"error\n";
}
【三】for循环语句
循环语句的作用就是处理反复执行某一操作的情况~比如要输入100个学生的成绩,求50个数之和~
这边先介绍for循环 语句简介 应用广泛~【因为我只用for啊23333333333
for (init-statement; condition; expression) //红色高亮的是分号~ statement 一般来说,init-statement 用于对每次循环过程中都要修改的变量进行初始化,或者赋给一个起始值。
而condition 则是用来控制循环的。当 condition 为 true 时,循环执行 statement。如果第一次求解 condition 就得 false 值,则不执行 statement。
expression 通常用于修改在 init-statement 中初始化并在 condition 中检查的变量。它在每次循环迭代后都要求解。如果第一次求解 condition 就得 false
值,则始终不执行 expression。
通常,statement 既可以是单个语句也可以是复合语句。
栗子:计算1 + 2 + 。。。。+100的值 sum=0;
for(int i=1; i<=100; i++)
sum+=i;
讲解:
循环开始,执行i=1;立即判断1<=100成立,于是进入循环 让sum值加上i的值1,
接下来i自增,判断2<=100成立 于是sum继续加上i的值2;
之后的步骤中,均不会执行int i=1这句话。
直到i=100后,当sum的值加上100后,i自增,变为101,执行判断语句 发现为false 于是跳出循环 循环结束o(* ̄▽ ̄*)o
【四】while循环语句
while(condition) statement
当指定的条件为真(表达式非0)时,执行while语句中的内嵌语句。
栗子:和上面一样~计算100个数之和
int i=1;
int sum=0;
while(i<=100)
{
sum+=i;
i++;//自增~
}
【五】do while语句
do {
statement
} while (condition);//不要漏了最后的分号
该循环体结构保证循环体至少执行一次。
栗子:循环要求用户输入两个数字相加~
// repeatedly ask user for pair of numbers to sum
string rsp; // used in the condition; can't be defined inside the do
do {
cout << "please enter two values: ";
int val1, val2;
cin >> val1 >> val2;
cout << "The sum of " << val1 << " and " << val2
<< " = " << val1 + val2 << "\n\n"
<< "More? ";
cin >> rsp;
} while (!rsp.empty() && rsp != 'n');
==================神烦的作业菌总是压轴出场=========================
1.输入一个整数(1~12) 判断是什么季节【假定1-3月是春季,4-6是夏季。。。。】
【最好有用户在输入错误的数字时的判断】
2.【判断与循环结合】让用户输入一串字符 统计这串字符中a出现的个数以及b出现的个数并打印出来~
【这题的循环判断语句需要大家翻阅一下资料呢o(* ̄▽ ̄*)o 】
作业上交时间节点~鉴于最近是四六级备考阶段~时间延长到两个礼拜 2013-6-7 Fri之前上交,6-7晚上9:00之后讲评和答疑~
本帖最后由 兰陵笑忘生 于 2013-5-25 17:18 编辑
【上次作业讲解】
上个月我略忙啊orz 所以没有催大家交作业了~于是翻了一下文件 只有号码菌交了作业orz
大家要积极一点嘛~
先贴出代码菌的代码~
1.循环为数组赋值~【这个只要将上一次讲解中的代码修改一下就可以了~这边不详细讲了】
http://m1.img.papaapp.com/farm4/2013/0525/17/DBBDCC07754EFE4A9C0B2C35E034F7DEB7085E05AB632_763_379.JPEG
2.声明一个包含26个元素的数组,赋值为所有的小写字母a-z
因为a-b在ascii码表中是按顺序排列的~而 char类型是可以进行加减运算的~所以可以用如下的代码完成(★ω★)+.*。
http://m3.img.papaapp.com/farm5/2013/0525/17/0FF1B1CEF05028542EA09E84126864CFBC154D9927062_1147_417.JPEG
召唤(★ω★)+.*。
@alineviola @307460466 @kurisu725@Moss
@米汤煮成酱 @MAY_五月 @日向枣
@Whisper1166我终于又想起这个大坑了/(ㄒoㄒ)/~~
发糖 妥妥的→_→ 总感觉这个版迟早要从主页中消失啊。。。 foodszhu 发表于 2013-5-26 00:37 static/image/common/back.gif
总感觉这个版迟早要从主页中消失啊。。。
怎么了?没人气么 兰陵笑忘生 发表于 2013-5-26 00:37 static/image/common/back.gif
怎么了?没人气么
太冷清啊。。。帖子都是各种翻坟。。。。每日新帖太少。。。人也太少。。 foodszhu 发表于 2013-5-26 00:39 static/image/common/back.gif
太冷清啊。。。帖子都是各种翻坟。。。。每日新帖太少。。。人也太少。。 ...
你也可以发的嘛~屠版什么的我常干→_→ 兰陵笑忘生 发表于 2013-5-26 00:40 static/image/common/back.gif
你也可以发的嘛~屠版什么的我常干→_→
发了一阵教程贴由于没什么反响也就不了了之了。。。关键在于我现在常年linux然后外加搞各种乱七八糟的语言。。。受众太小。。。斑竹大大现在也感觉没什么存在感了。。。现在每天上技宅看程设版都是以前的老贴挺不爽的。。好久没看到发资源抑或教程的了。。。你这是这个月唯一的吧。。。好吧。。有个将cocos的被我忽略了。。。基本上什么都没说就走了orz。。。 foodszhu 发表于 2013-5-26 00:46 static/image/common/back.gif
发了一阵教程贴由于没什么反响也就不了了之了。。。关键在于我现在常年linux然后外加搞各种乱七八糟的语 ...
我之前有事就停了一个月orz 赶在月末发了个教程还写得不咋地/(ㄒoㄒ)/~~
嘛~真正学编程的不在这儿混~在这儿混的又不是冲着编程来的→_→
于是冷清也是正常了
感觉你出现地比版主勤快多了~真是好孩子呢(★ω★)+.*。
咱来撸了一发的说~~\(≧▽≦)/~啦啦啦 #31x 兰陵笑忘生 发表于 2013-5-26 01:26 static/image/common/back.gif
我之前有事就停了一个月orz 赶在月末发了个教程还写得不咋地/(ㄒoㄒ)/~~
嘛~真正学编程的不在这儿混~在 ...
[某废人]可能是大家的拥有的编程程度的能力比较离散,教程贴无法顾及大部分人的需求,所以响应较少。这样的话先多吸引一些有编程基础的人或神,壮大队伍,然后分队伍做初阶进阶的教程可能比较好。其实朝相反方向发展也不错,咱都不是冲着学编程来的DAZE~ ps:大神幸苦了☆ 封獣★ぬえ 发表于 2013-5-28 15:19 static/image/common/back.gif
[某废人]可能是大家的拥有的编程程度的能力比较离散,教程贴无法顾及大部分人的需求,所以响应较少。这样 ...
嘛~不是大神orz
这个可以建议一下这个版子的版主大大~
不过一般学个基础语言 其他的就可以无师自通了呢~
都弄教程感觉也麻烦了~ 兰陵笑忘生 发表于 2013-5-28 15:26 static/image/common/back.gif
嘛~不是大神orz
这个可以建议一下这个版子的版主大大~
语言基础好枯燥的说TAT 封獣★ぬえ 发表于 2013-5-28 15:33 static/image/common/back.gif
语言基础好枯燥的说TAT
{:43_8928:}确实呢~不过枯燥的东西那么多 也不怕多一个枯燥的