第三讲:c/c++循环语句for(),if(),swich(),do while(),
来源:互联网 发布:c语言 buffer 编辑:程序博客网 时间:2024/03/29 09:15
本文的编写是为了在学习c++的时候加深自己的记忆,同时也为与我一般的初学者提供一些参考,此处特别感谢微信公众号“c/c++的编程
教室”,我的学习过程按照公众号的推送进行学习的!
1.for()循环(1)for()格式:for(表达式1;表达式2;表达式3) { do something; }(2)乘法表程序#include <stdio.h>#include <stdlib.h>int main(){int i, j;for (i = 1; i <= 9; i++){for (j = 1; j <= i; j++)printf("%d*%d=%d\t", j, i, j*i);printf("\n");}system("PAUSE");}
2.if()循环
(1)if()格式,条件是bool型数据
if(条件)
do;
else if(条件)
do;
……
else
do;
(2)实际程序,成绩判断
#include <stdio.h>#include <stdlib.h>int main(){int i;while (scanf_s("%d", &i)){if (i >= 0 && i<60)printf("不及格,重考,下一个\n");else if (i >= 60 && i<70)printf("一般般吧,勉强过关,下一个\n");else if (i >= 70 && i<90)printf("好像还不错的样子,再接再厉,下一个\n");else if (i >= 90 && i <= 100)printf("漂亮,就是要这样,下一个\n");elseprintf("无效成绩,什么玩意,下一个\n");}system("PAUSE");return 0;}
3.swich()循环
(1)swich()循环结构
switch(what)//判断what是什么,what 是整形数据
{
case what =what1://当what是what1的时候
do something;
break;
case what = other what://是其他情况的时候
do something;
break;
case ……:
……
default://表示自己不希望what = 的值
break;
在这里补充一下break和continue的用法区别:
break 命令可以与三种循环形式中的任何一种以及 switch 语句一起使用。它导致程序控制跳过包含它的循环或 switch 语句的剩余
部分,继续执行紧跟在循环或 switch 后的下一条命令。
continue 命令可以与三种循环形式中的任何一种一起使用,但不能和 switch 语句一起使用。它导致程序控制跳过循环中的剩余语
句。对于 while 或 for 循环,开始下一个循环周期。对于 do while 循环对退出条件进行判断,如果必要,开始一个循环周期。
(2)实际程序
①成绩判断
#include<stdio.h>#include<stdlib.h>void main(){int n;printf("请输入成绩:\n");scanf_s("%d:", &n);n = n / 10 + 1;switch (n){case 1:case 2:case 3:case 4:case 5:case 6:printf("不及格,重考,下一个\t\n");break;case 7:printf("一般般吧,勉强过关,下一个\n");break;case 8:case 9:printf("好像还不错的样子,再接再厉,下一个\n");break;case 10:case 11:printf("漂亮,就是要这样,下一个\n");break;default:printf("无效成绩,什么玩意,下一个\n");break;}system("PAUSE");}
②目录预览
#include <stdio.h>#include <stdlib.h>int main(){char ch;int n;printf("回复D或者d查看目录:\n");while (scanf_s("%c", &ch)){switch (ch){case 'D':case 'd':printf("第一讲 Hello World.\t\n");printf("第二讲 printf()(1).\t\n");printf("第三讲 printf()(2).\t\n");printf("…………\t\n");printf("回复相应的数字查看相应章节.\t\n");goto d;default:printf("无效字符,请重新输入:\n");}}d: while (scanf_s("%d", &n)){switch (n){case 1:printf("第一讲 Hello World.\t\n");break;case 2:printf("第二讲 printf().\t\n");break;case 3:printf("第三讲 printf()(2).\t\n");break;default:printf("敬请期待……\n");break;}} system("PAUSE"); return 0;}
在此提一下goto语句:goto是一个让人讨厌又让人喜欢的语句,讨厌之处是本身容易出错,但是好处就是可以直接从一个深度循环
里面直接跳转出来,由于while循环有个共性,只要你给的条件满足他就会一直循环下去,俗称死循环,像我们上面的这种写法就更
容难退出了,这是我们所不希望看到的,因为如果这样的话我们就会被这个while给套牢了,我们想要的是当我们进入目录之后就可
以进入查看章节的章程,当然如果我们没有进入目录自然会有重新尝试的机会,所以,我们应该在正确进入目录后直接跳出目录然后
进行查看章节的环节,所以我们在打印完章节后我们使用goto语句直接退出循环,进入下一个环节,goto在这里就起到了关键作用
,goto后面的d是一个标识符,标明要跳转d标记的地方,想要标记某个位置就直接在该行代码前加上该标识符和冒号即可,当程序
运行到goto语句时直接跳转到标记处。
4.do while()循环
(1)循环结构
do
{
do something;
}while(条件);
(2)实际程序练习:一个同学很喜欢数学,有人问他年龄时他却说:“ 我的年龄平方是三位数,立方是四位数,四次方是六位数,三次方和四次方正好占遍了0,1,2,3,4,5,6,7,8,9这10个数字。”现在大家能够猜到这位同学年龄吗?
#include <stdio.h>#include <stdlib.h>long power(int n, int m);int age();//return countint agemax();//return maxint main(){int n, m, c;long a[10] = { 0 }, s[10] = { 0 }, i, sum3, sum4;n = age();printf("n=%d\n", n);m = agemax();printf("m=%d\n",m);c = m - n + 1;printf("c=%d\n", c);do{sum3 = power(c, 3);for (i = 3; i >= 0; i--){a[i] = sum3 % 10;sum3 = sum3 / 10;}sum4 = power(c, 4);for (i = 9; i>3; i--){a[i] = sum4 % 10;sum4 = sum4 / 10;}for (i = 0; i <= 9; i++){s[a[i]]++;}for (i = 0; i <= 9; i++){if (s[i] == 1){if (i == 9)printf("这位同学的年龄是:%d\n", c);}elsebreak;}c++;//从满足条件的最小值开始遍历} while (c <= m);system("PAUSE");return 0;}//实现幂次方long power(int n, int m){long s = 1;while (m--){s *= n;}return s;}//求满足sum1和sum2的个数int age(){int age[25];int count = 0;long sum1, sum2;for (int i = 0; i<25; i++){sum1 = power(i, 3);sum2 = power(i, 4);if (sum1 > 1000 && sum1 <10000 &&sum2 > 100000 && sum2 < 1000000){age[i] = i;count++;}}return count;}//求出满足sum1和sum2的最大值int agemax(){int age[25] = { 0 }, max = 0;long sum1, sum2;for (int i = 0; i<25; i++){sum1 = power(i, 3);sum2 = power(i, 4);if (sum1 > 1000 && sum1 <10000 &&sum2 > 100000 && sum2 < 1000000){age[i] = i;}if (max<age[i]){max = age[i];}}return max;}
此处给出c++的实现程序,包含了vector和push_back()
#include <iostream>//c++标准库#include <vector>using namespace std;//标准字声明int main(){vector<int>age;int n, m, a[10] = { 0 }, s[10] = { 0 };long sum1, sum2;for (int i = 0; i<25; i++){sum1 = i*i*i;sum2 = i*i*i*i;if (sum1 > 1000 && sum1 <10000 &&sum2 > 100000 && sum2 < 1000000){age.push_back(i);}}int size = age.size();n = age[0];m = age[size - 1];do{sum1 = n*n*n;for (int i = 3; i >= 0; i--){a[i] = sum1 % 10;sum1 = sum1 / 10;}sum2 = n*n*n*n;for (int i = 9; i>3; i--){a[i] = sum2 % 10;sum2 = sum2 / 10;}for (int i = 0; i <= 9; i++){s[a[i]]++;}for (int i = 0; i <= 9; i++){if (s[i] == 1){if (i == 9)cout << "这位同学的年龄是:" << n << endl;}elsebreak;}n++;} while (n != m);cin.get();return 0;}
- 第三讲:c/c++循环语句for(),if(),swich(),do while(),
- Object-C,循环语句for,while,do-while
- C语言之while循环语句和do while循环语句、for循环语句、循环嵌套
- 第三讲 :● 循环结构 for , while, do while
- 循环控制语句for while do-while if switch
- 分支语句 循环语句 if,switch,do,while,for分析
- IF For Do while循环
- C语言中循环结构语句 for循环及while,do--while 的使用
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)
- 循环语句if(){}else{}、if(){}else if(){}...else{}、do{}while()、for(){}、with(){}break/continue语句
- C-011.while和do...while 循环语句
- Asp.net的条件和循环语句示例(If,Swich,While,For,Goto,foreach,Lock可直接运行)
- c语言中不用while,for,do-while实现循环
- 【C++】For、While、do···while循环
- Mohican_12/12 C语言—循环 for ,while,do while
- if和switch语句、循环语句while和do……while、for
- 循环语句小结 for while do-while
- 循环结构语句---for,while,do-while
- L2-001. 紧急救援 (Dijkstra最短路径变形)
- Ubuntu 16.04 安装 NVIDIA 驱动 桌面不黑屏,不重复登录
- android MVP 小笔记1
- 弱校联盟#con4积性函数
- mapper-util使用手册
- 第三讲:c/c++循环语句for(),if(),swich(),do while(),
- 决策树(CART)、随机森林、GBDT(GBRT)新手导读及资料推荐,附加python实现代码
- Struts 01
- 签到
- 将自己的图像数据转换成caffe需要的db(leveldb/lmdb)文件
- gunicorn Arbiter 源码解析
- 异或
- 创建和调用动态链接库与静态链接库
- gcc编译参数-fPIC的一些问题