在取模运算的时候,小数不可以进行取模运算。只有整型变量才可以进行取模运算
上午:目标:24-41
4 程序流程结构
三种程序运行结构:顺序、选择、循环
顺序:程序按照顺序进行,不发生跳转
选择:依据条件是否满足,选择执行
循环:依据条件是否满足,循环执行
4.1选择结构
4.1.1 if 语句
1.单行:if (条件){}
if(score>600)
{
cout << "一本" <<endl;
}
注意if后面不要加分号,加上分号,if白写
2.多行if if(条件){}else{}
if(score>600)
{
cout << "一本" <<endl;
}
else
{
cout <<"二本" << endl;
}
3.多条件语句if if(条件1){条件一满足执行的语句}else if(条件2){条件2满足的执行语句}else{都不满足}
4.嵌套if语句:达到更精准的条件判断
4.1.2 三目运算符
进行简单的判断 c = (a > b ? a:b)//a和b比较。把变量值较大的赋值给c
1?2:3
1真执行2
1假执行3
三目运算符返回的是变量,可以对变量再进行赋值的操作
(a > b ? a:b)= 100
把较大的变量赋值为100
4.1.3 switch
switch(表达式)
{
case 结果1:执行语句;break;
case 结果2;执行语句;break;
……
default:执行语句;break;
}
例子
注意每个分支都要打上一个break
switch (score)
{
case 10:
cout << "经典电影" << endl
break;//退出当前的分支
case 9:
cout << "经典电影" << endl
break;
default :
cout << "laji" <<endl
break;
}
switch()里面只能放一个整型或者字符型,不能进行一个区间的判断
优点:结构很清晰,执行效率高。
case里面必须有break
4.2 循环结构
4.2.1 while循环
while(循环条件){}
只要循环条件为真就执行循环语句
while (num<10)
{
cout << num << endl;
num++ ;
}
添加随机数种子,作用利用当前系统时间生成随机数,防止每次的随即数都一样。
#include < ctime >
srand( (unsigned init)time(NULL) )
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand((unsigned init)time(NULL));
int num = rand() % 100 + 1;
//cout << num << endl;
int val = 0//玩家输入的数据
int counter = 0
while (counter<2)
{
counter++;//超过n次就不能执行
cin >> val;
if (val > num)
{
cout<<"猜测过大"<< endl;
}
else if(val < num)
{
cout<<"猜测过小"<< endl;
}
else
{
cout<<"猜测正确"<< endl;
break;//用关键字来退出当前的循环
}
}
symstem("pause");
return 0;
}
4.2.2 do while 循环语句
满足循环条件执行循环语句
do{循环语句} while(循环条件)
先执行一次循环语句,再判断满不满足循环条件。
输出0-9的数字
while后面要加逗号
int num = 0;
do
{
cout << num << endl;
num ++;
}
while(num<10);
案例:水仙花数
水仙花数是一个3位数,每个位的数字3次幂之和等于他本身
#include <iostream>
using namespace std;
int main()
{
int i = 100;
int gewei = 0;
int shiwei = 0;
int baiwei = 0;
do{
baiwei = i/100;
shiwei = (i - baiwei*100)/10;
gewei = i%10;
if (baiwei^3+shiwei^3+gewei^3 == i)
{
cout << i << endl
}
i++;
}
while (i < =999);
symstem("pause");
return 0;
}
4.2.3 for 循环语句
满足循环条件执行循环语句
for(起始表达式;条件表达式;末尾循环体){循环语句};
//第一种,写一行比较整洁
for (int i = 0;i<10;i++)
{
}
//第二种
int i = 0 ;
for(;;)
{
if(i>=10)
{
break;
}
cout << i << endl;
i++;
}
先i=0,
然后i<10,然后执行循环体,然后i++,
然后i<10,然后执行循环体,然后i++,
然后i<10,然后执行循环体,然后i++,
然后i<10,然后执行循环体,然后i++,
注意用分号隔开
#include <iostream>
using namespace std;
int main()
{
for(int i = 0;i<100;i++)
{
int gewei = 0;
int shiwei = 0;
int yushu = 0;
gewei = i%10;
shiwei = i/10;
yushu = i/7
if(gewei == 7||shiwei==7||yushu==0)
{
cout<<"敲桌子<<endl;
}
else
{
cout<<i<<endl;
}
}
symstem("pause");
return 0;
}
答案的代码
for (int i = 1;i<=100;i++)
{
if(i%7==0||i%10==7||i/10==7)
{
cout<<"敲桌子"<<endl;
}
else
{
cout<<i<<endl;
}
}
4.2.4嵌套循环
外层执行一次,内层执行一周
for(int j=0;j<10;j++)
{
for (int i=0;i<10;i++)
{
cout<<"*"<<" ";
}
cout << endl;
}
案例乘法口诀表
#include <iostream>
using namespace std;
int main()
{
for (int j = 1;j<10,j++)
{
for (int i = 1;i<j;i++)
{
cout<<i<<"*"<<j<<"="<<(i*j)<<" ";
}
cout<<endl;
}
symstem("pause");
return 0;
}
4.3 跳转语句
4.3.1 break语句
用于跳出选择结构或者循环语句
1.switch
2.循环语句中
for()
{
if (i==5)
{
break;
}
}
3.出现在嵌套语句中
4.3.2 continue语句
在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环
//奇数输出,偶数不输出
for()
{
if (i%2==0)
{
continue;//可以作为筛选条件,执行到此就不再往下执行了,执行下一次循环
}
cout<<i<<endl
}
4.3.3 goto语句
可以无条件跳转语句
如果标记的名称存在的时候,执行到goto语句的时候,会跳转到标记的位置。
goto FLAG;
FLAG:
平时不会使用。