兰陵笑忘生 发表于 2013-5-25 17:07:44

★阿宅救援团★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:07:55

本帖最后由 兰陵笑忘生 于 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_五月 @日向枣


兰陵笑忘生 发表于 2013-5-25 17:19:01

@Whisper1166我终于又想起这个大坑了/(ㄒoㄒ)/~~
发糖 妥妥的→_→

foodszhu 发表于 2013-5-26 00:37:24

总感觉这个版迟早要从主页中消失啊。。。

兰陵笑忘生 发表于 2013-5-26 00:37:58

foodszhu 发表于 2013-5-26 00:37 static/image/common/back.gif
总感觉这个版迟早要从主页中消失啊。。。

怎么了?没人气么

foodszhu 发表于 2013-5-26 00:39:44

兰陵笑忘生 发表于 2013-5-26 00:37 static/image/common/back.gif
怎么了?没人气么

太冷清啊。。。帖子都是各种翻坟。。。。每日新帖太少。。。人也太少。。

兰陵笑忘生 发表于 2013-5-26 00:40:59

foodszhu 发表于 2013-5-26 00:39 static/image/common/back.gif
太冷清啊。。。帖子都是各种翻坟。。。。每日新帖太少。。。人也太少。。 ...

你也可以发的嘛~屠版什么的我常干→_→

foodszhu 发表于 2013-5-26 00:46:29

兰陵笑忘生 发表于 2013-5-26 00:40 static/image/common/back.gif
你也可以发的嘛~屠版什么的我常干→_→

发了一阵教程贴由于没什么反响也就不了了之了。。。关键在于我现在常年linux然后外加搞各种乱七八糟的语言。。。受众太小。。。斑竹大大现在也感觉没什么存在感了。。。现在每天上技宅看程设版都是以前的老贴挺不爽的。。好久没看到发资源抑或教程的了。。。你这是这个月唯一的吧。。。好吧。。有个将cocos的被我忽略了。。。基本上什么都没说就走了orz。。。

兰陵笑忘生 发表于 2013-5-26 01:26:03

foodszhu 发表于 2013-5-26 00:46 static/image/common/back.gif
发了一阵教程贴由于没什么反响也就不了了之了。。。关键在于我现在常年linux然后外加搞各种乱七八糟的语 ...

我之前有事就停了一个月orz 赶在月末发了个教程还写得不咋地/(ㄒoㄒ)/~~
嘛~真正学编程的不在这儿混~在这儿混的又不是冲着编程来的→_→
于是冷清也是正常了
感觉你出现地比版主勤快多了~真是好孩子呢(★ω★)+.*。

307460466 发表于 2013-5-26 02:19:01

咱来撸了一发的说~~\(≧▽≦)/~啦啦啦

ID:L1 发表于 2013-5-26 02:30:09

#31x

封獣★ぬえ 发表于 2013-5-28 15:19:20

兰陵笑忘生 发表于 2013-5-26 01:26 static/image/common/back.gif
我之前有事就停了一个月orz 赶在月末发了个教程还写得不咋地/(ㄒoㄒ)/~~
嘛~真正学编程的不在这儿混~在 ...

[某废人]可能是大家的拥有的编程程度的能力比较离散,教程贴无法顾及大部分人的需求,所以响应较少。这样的话先多吸引一些有编程基础的人或神,壮大队伍,然后分队伍做初阶进阶的教程可能比较好。其实朝相反方向发展也不错,咱都不是冲着学编程来的DAZE~ ps:大神幸苦了☆

兰陵笑忘生 发表于 2013-5-28 15:26:30

封獣★ぬえ 发表于 2013-5-28 15:19 static/image/common/back.gif
[某废人]可能是大家的拥有的编程程度的能力比较离散,教程贴无法顾及大部分人的需求,所以响应较少。这样 ...

嘛~不是大神orz

这个可以建议一下这个版子的版主大大~

不过一般学个基础语言 其他的就可以无师自通了呢~
都弄教程感觉也麻烦了~

封獣★ぬえ 发表于 2013-5-28 15:33:49

兰陵笑忘生 发表于 2013-5-28 15:26 static/image/common/back.gif
嘛~不是大神orz

这个可以建议一下这个版子的版主大大~


语言基础好枯燥的说TAT

兰陵笑忘生 发表于 2013-5-28 15:38:49

封獣★ぬえ 发表于 2013-5-28 15:33 static/image/common/back.gif
语言基础好枯燥的说TAT

{:43_8928:}确实呢~不过枯燥的东西那么多 也不怕多一个枯燥的
页: [1] 2 3
查看完整版本: ★阿宅救援团★C++入门【五】语句