运算结构与分支结构简要总结:
一.运算符:
1.1运算符的分类及详细说明:
注意:
整数运算:
1. 如果两个操作数有一个为Long, 则结果也为long。
2. 没有long时,结果为int。即使操作数全为short,byte,结果也是int。
浮点运算:
1. 如果两个操作数有一个为double,则结果为double。
2. 只有两个操作数都是float,则结果才为float。
①算术运算符:
a.+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。
b.算术运算符中++,–属于一元运算符,该类运算符只需要一个操作数。
(说明:++在前,先自加,在进行运算,++在后,先运算再进行自加)
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
System.out.print(a);==>4
int a = 3;
int b = ++a; //执行完后,b=4。a先自增,再给b赋值
System.out.print(a);==>4
②赋值运算符:
int a=3;
int b=4;
a+=b;//相当于a=a+b;
System.out.println("a="+a+"\nb="+b);\\==>a=7,b=4
int a=3;
int b=4
a*=b+3;//相当于a=a*(b+3)
System.out.println("a="+a+"\nb="+b);\\==>a=21 b=4
③关系运算符:
注意事项:
- =是赋值运算符,而真正的判断两个操作数是否相等的运算符是==。
- ==、!= 是所有(基本和引用)数据类型都可以使用
- > 、>=、 <、 <= 仅针对数值类型(byte/short/int/long, float/double。以及char)
④逻辑运算符:
( 说明:短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。)
⑤条件运算符:
其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值
x ? y : z
int score = 80;
int x = -100;
String type =score<60?"不及格":"及格";
int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
System.out.println("type= " + type);
System.out.println("flag= "+ flag);
1.2运算符的优先级:
二.分支结构:
说明:
标准三要素:①初值 ②条件 ③增量和步长
①:循环开始之前的一个状态
②:当条件满足,执行循环体,不满足不执行
③:结合初值和条件共同决定循环次数
2.1:分支结构的分类及其基本框架:
①单分支结构:
if(判断条件){
代码块
}
(说明:判断条件为真则执行代码块)
②双分支结构:
if(判断条件){
代码块1
}else{
代码块2
}
(说明:判断条件为真则执行代码块1,否则执行代码块2)
③多分支结构:
(判断表达式返回值必须为boolean类型)
if(判断) {
语句块1;
} else if(判断2) {
语句块2;
... ...
else if(判断n){
语句块n;
}else {
语句块n+1;
}
(说明:进行条件判断,如果为真执行语句块1,如果不是则进入判断2,同理执行下边的代码)
2.2:switch结构:
switch (表达式) {
case 值1: 语句序列1;
[break];
case 值2: 语句序列2;
[break];
… … … … …
[default: 默认语句;]
}
说明:switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况。
2.3:while结构:
while (布尔表达式) {
循环体;
}
说明:在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。
2.4:do…while结构:
do {
循环体;
} while(布尔表达式) ;
说明:do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-while循环的循环体至少执行一次。
2.5: for结构:
for (初始表达式; 布尔表达式; 迭代因子) {
循环体;
}
说明:for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。