块语句:成为一个整体
{
语句1;
语句2;
...
}
语句:
空语句: ;
非空语句: ***;
程序的流程控制:顺序,选择控制,循环
1、顺序执行:从上往下,逐条来执行
2、选择控制:当达到某种条件,执行特定的指令。
if switch
if(逻辑条件表达式)
语句;
//注:1、表达式为真,则执行下列表名句。否则不执行。
2、结合:if()一条语句或者语句块结合成为一条完整的语句。
双分支:
if(表达式) //条件为真
{
语句 ;
}
else //条件为假
{
语句 ;
}
多分支:
if(表达式1)
语句 1;
else if(表达式2)
语句 2;
...
else
语句n;
嵌套if
双分支:
if(表达式) //条件为真
{
if(表达式)
语句 ;
...
}
else //条件为假
{
if(表达式)
语句 ;
...
}
多分支:switch
switch(整型表达式) //注:必须为整型表达式
{
case 常量表达式1:
break;
case 常量表达式2:
break;
default:
}
注:整型表达式表达式与常量表达式进行匹配;匹配成功则执行此分支直到遇到break分支才结束。
循环控制:重复执行
for while do-while
for(初始化表达式1;(逻辑值)结束表达式;过程表达式)
{
循环体;
}
注:结束表达式为真则循环;否则退出循环
嵌套循环
for(初始化表达式1;(逻辑值)结束表达式;过程表达式3)
{
for(初始化1;结束表达式2;过程表达式3)
循环体;
...
}
循环的控制:结束(不再循环;结束本次循环,开始下一次循环)循环
不再循环:break;(退出循环)
开始下一次循环:continue;
练习题
1、通过if来比较flag与零值。 (笔试题)
float flag;(精度)
int flag;
if(0==flag)
double flag;
* bool flag;
* int* flag;
int flag;
if(flag) 这样写,运行没有错误,但是是不对的,因为这样写flag要么为1要么为0,没有其他的值
只能用if(flag==0)进行比较
float flag;
if(flag==0)或if(flag) 错误,因为若flag=0.0000001,结果为0,很显然flag不为0
浮点型的比较需要考虑精度
float若打印,小数点后只有6位
分别给出bool,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)
【解答】
bool型变量:if(!var) 或if(var)
int型变量: if(var==0)
float型变量:
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
指针变量: if(var==NULL)
【剖析】
考查对0值判断的“内功”,BOOL型变量的0判断完全可以写成if(var==0),而int型变量也可以写成if(!var),指针变量的判断也可以写成if(!var),上述写法虽然程序都能正确运行,但是未能清晰地表达程序的意思。
一般的,如果想让if判断一个变量的“真”、“假”,应直接使用if(var)、if(!var),表明其为“逻辑”判断;如果用if判断一个数值型变量(short、int、long等),应该用if(var==0),表明是与0进行“数值”上的比较;而判断指针则适宜用if(var==NULL),这是一种很好的编程习惯。
浮点型变量并不精确,所以不可将float变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。如果写成if (x == 0.0),则判为错,得0分。
在计算机领域,单等号“=”表示的是赋值操作,而双等号“==”表示的是比较操作。
2、
*
***
*****
*******
*********
i的循环是为了控制行数,j的循环是控制空格数,k的循环是控制*的个数
3、求某正整型数字的最小公倍数(2位数的)
4、将54321的整型数字倒着打印
5、求某个数字的是否是回文数字 (***) 121 12345 54321
6、求某个5位数中那一位数最大!12859