(1)运算符、程序流程结构(选择结构、循环结构、嵌套循环、跳转语句)

运算符

作用:用于执行代码的运算

运算符类型作用
算术运算符用于处理四则运算
赋值运算符用于将表达式的值赋给变量
比较运算符用于表达式的比较,并返回一个真值或假值
逻辑运算符用于根据表达式的值返回真值或假值

算术运算符

运算符术语示例结果
+正号+33
-负号-3-3
+加号10+515
-减号10-55
*乘号10*550
/除号10/52
%取模(取余)10%31
++前置递增a = 2; b = ++a;a = 3; b = 3;
++后置递增a = 2; b = a++;a = 3; b = 2;
--前置递减a = 2; b = --a;a = 1; b = 1;
--后置递减a = 2; b = a--;a = 1; b = 2;

C++中,两个整数相除时,除数(分母)不可为0,结果依然是整数,将小数部分去除;两个小数相除,结果也可能是小数。

取模运算的本质就是求余数。

两个小数是不可以做取模运算的。

前置:先让变量+1或-1,然后再运行表达式;后置则相反。

赋值运算符

作用:将表达式的值赋给变量。

运算符术语示例结果
=赋值a = 2; b = 3;a = 2; b = 3;
+=加等于a = 0; a += 2;a = 2;
-=减等于a = 5; a -= 3;a = 2;
*=乘等于a = 2; a *= 2;a = 4;
/=除等于a = 4; a /= 2;

a = 2;

%=模等于a = 3; a %= 2;a = 1;

比较运算符

作用:用于表达式的比较,并返回一个真值或假值。

 逻辑运算符

作用:依据表达式的值返回真值或假值

非:真变假,假变真

与:同真为真,其余为假

或:同假为假,其余为真

程序流程结构

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构

选择结构

执行满足条件的语句

if语句:

注意事项:if判断语句后面不加分号

if语句的三种形式

1.单行格式if语句:if(条件){条件满足执行的语句}

2.多行格式if语句:if(条件){条件满足执行的语句}else{条件不满足执行的语句}

 3.多条件的if语句:if(条件1){条件1满足执行的语句}else if(条件2){条件2满足执行的语句}……else{都不满足执行的语句}

 嵌套if语句:

达到更精确的条件判断

if(条件)
{
    执行语句;
    if(条件)
   {
        执行语句;
   }
}
else if(条件)
{
    执行语句;
}
else
{
    执行语句;
}

三目运算符

语法:表达式1 ?表达式2 :表达式3

解释:如果表达式1的值为真,执行表达式2,并返回表达式2的结果;

           如果表达式1的值为假,执行表达式3,并返回表达式3的结果。

C++中三目运算符输出的是变量,可以继续赋值

int a = 10;
int b = 20;
int c = 0;
c = (a>b ? a : b);
(a>b ? a : b) = 100;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;

输出:

a = 10

b = 100

c = 20

switch语句

执行多条件分支语句

break:终止case并跳出switch;

switch(表达式)
{
   case 结果1:执行语句;break;
   case 结果1:执行语句;break;
   ……
   default:执行语句;break;
}
例子:电影打分
int main()
{
   cout << "请打出你的分数" << endl;
   int score = 0;
   cin >> score;
   cout << "你打出的分数为:" << score << endl;
   switch(score)
   {
   case 10:
      cout << "你认为经典" << endl;
      break;
   case 9:
      cout << "你认为经典" << endl;
      break;
   case 8:
      cout << "你认为很好" << endl;
      break;
   case 7:
      cout << "你认为不错" << endl;
      break;
   case 6:
      cout << "你认为及格" << endl;
      break;
   default:
      cout << "你认为很差" << endl;
      break;
   } 
}

注意事项:

switch判断时只能是整型或者字符型,不可以是区间;

case里如果没有break,那么程序会一直向下执行;

与if语句相比,对于多条件判断时,switch结构更清晰,执行效率更高,缺点是不能判断区间。

循环结构

满足循环条件,执行循环语句

while循环语句:

语法:while(循环条件){循环语句}

 例子:打印0-9、猜数字
int main()
{
   int num = 0;
   while(num < 10)
   {
   cout << num << endl;
   num++;
   }
}
#include<iostream>
#include<ctime>
int main()
{
   srand((unsigned int)time(NULL)); //添加随机数种子,利用当前系统生成随机数,防止每次随机数都一样
   int num = rand () % 100 + 1;//系统生成 0 + 1~99 + 1 随机数
   cout << "请输入你猜测的数字" << endl;
   int val = 0; //玩家输入的数据
   while (1)
   {
   cin >> val;
   if (val > num)
   {
      cout << "你猜大了" << endl;
   }
   else if (val < num)
   {
      cout << "你猜小了" << endl;
   }
   else
   {
      cout << "你猜对了" << endl;
      break; //利用break关键字退出当前循环
   }
   }
}

注意事项:在执行循环语句的时候,程序必须提供跳出循环的出口,否则出现死循环

do…while循环语句

语法:do{循环语句}while(循环条件);

与while的区别:先执行一次循环语句,再判断循环条件

例子:打印0-9
int num = 0;
do
{
   cout << num << endl;
   num++;
}
while (num < 10);
案例:水仙花数

水仙花数是指一个三位数,每个位上的数字的3次幂之和等于它本身,如:1^3 + 5^3 + 3^3 = 153

利用do…while语句,求出所有3位数中的水仙花数。

int main()
{
//先打印所有三位数字
int num = 100;
do
{
   int a = 0;//个位
   int b = 0;//十位
   int c = 0;//百位
   a = num % 10;//获取数字个位
   b = num / 10 % 10;//获取数字十位
   c = num / 100;//获取数字百位
   if (a*a*a + b*b*b + c*c*c == num)//判断是否为水仙花数
   {
      cout << num << endl;//输出水仙花数
   }
   num++;
}
while (num < 1000);
}

for循环语句

语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}

起始表达式只执行一次

例子:打印0-9
for(int i = 0; i < 10; i++) 
{
   cout << i << endl;//打印0-9
}
/*for的拆分
int i = 0;
for( ; ; )
{
   if(i >= 10)
   {
      break;//退出循环
   }
   cout << i << endl;
   i++;
}*/

注意:for循环中的表达式要用分号分隔

while、do…while、for都是开发中常用的循环语句,for循环结构比较清晰,比较常用

案例:敲桌子

从1开始到数字100,如果数字个位或者十位含有7,或者该数字是7的倍数,打印敲桌子,其余数字直接打印输出。

for(int i = 1; i <= 100; i++)
{
   if(i % 7 == 0 || i % 10 == 7 || i / 10 == 7)
    //是7的倍数、    个位含有7、     十位含有7
   {
      cout << "敲桌子" << endl;
   }
   else
   {
      cout << i << endl;
   }
}

嵌套循环

循环中再嵌套一层循环,解决一些实际问题

例子:打印10*10星图
//外层循环    外层循环执行一次,内层执行一周
for(int i = 0; i < 10; i++)
{
   //内层循环
   for(int j = 0; j < 10; j++)
   {
      cout << "* " ;
   }
   cout << endl;
}
案例:乘法口诀表
for(int i = 1; i <= 9; i++)//打印行数
{
   for(int j = 1; j <= i; j++)//打印列,列数<=行数
   {
      cout << j << " * " << i << " = " << j*i << "\t" ;//列数*行数=结果,\t用以对齐
   }
   cout << endl;
}

跳转语句

break语句:用于跳出选择结构或循环结构

用于switch条件语句中,终止case并跳出switch

用于循环语句中,跳出当前循环

用于嵌套循环中,跳出最近的内层循环语句

continue语句:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环

for(int i = 0; i <= 100; i++)
{
   if(i % 2 == 0)//奇数输出,偶数不输出
   {
      continue;//可筛选条件,执行到此就不再向下执行,执行下一次循环
   }
   cout << i << endl;
}

goto语句:无条件跳转语句

语法:goto 标记;

解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置。

cout << "111111" << endl;
cout << "222222" << endl;
goto FLAG;
cout << "333333" << endl;
cout << "444444" << endl;
FLAG:
cout << "555555" << endl;
//被跳过的333333和444444不会被输出

注意:在程序中不建议使用goto语句,以免造成程序流程混乱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值