Java运算符和流程控制语句
目录
一、Java运算符
1、表达式:由操作数和运算符组成。如数值5,变量num,num+2等
2、算数运算符:
(1)、算数运算符表:
(2)、注意:++和--既可以出现在操作数的左边,也可以出现在操作数的右边
出现在操作数左边:
结果:
出现在操作数右边:
结果:
示例比较图:
特别注意:++和--只能用来操作变量,不能操作数值或常量
3、赋值运算符:
(1)、注意:赋值运算符是从右往左运算;赋值号左边不能是常量
(2)、赋值运算符表:
4、逻辑运算符:结果为true或false
(1)、逻辑运算符表:
5、比较运算符:判断两个数的大小,结果为true或false
比较运算符表:
6、条件运算符:也称为 “三元运算符”
(1)、语法形式:布尔表达式 ? 表达式1 :表达式2
(2)、运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
7、运算符的优先级:
二、流程控制(顺序结构、选择结构、循环结构)
1、顺序结构:程序从上往下依次执行
2、选择结构:生活中,我们经常需要先做判断,然后才决定是否要做某件事情。
(1)、if条件语句:
语法:当大括号内只有一条语句时,大括号可以省略
流程图:
(2)、if-else条件语句:if...else 语句的操作比 if 语句多了一步: 当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入 else 部分
语法:
流程图:
(3)、多重if条件语句:多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断;当前面的条件均不成立时,才会执行 else 块内的代码
语法:
流程图:
(4)、嵌套if条件语句:只有当外层 if 的条件成立时,才会判断内层 if 的条件
语法:
流程图:
(5)、switch条件语句:当需要对选项进行等值判断时,使用 switch 语句更加简洁明了
语法:
执行过程:当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码
3、循环结构:while、do-while、for、循环嵌套(双重循环)、break语句、continue语句
(1)、Java循环之while循环:生活中,有些时候为了完成任务,需要重复的进行某些动作
语法:
执行过程:
< 1 >、 判断 while 后面的条件是否成立( true / false )
< 2 >、 当条件成立时,执行循环内的操作代码 ,然后重复执行< 1 >、< 2 >, 直到循环条件不成立为止
特点:先判断后执行
(2)Java循环之do-while循环:和while循环类似,和while循环相比do-while循环至少执行一次,而while循环如果条件不满足时一次都不执行
语法:
执行过程:
<1>、 先执行一遍循环操作,然后判断循环条件是否成立
<2>、 如果条件成立,继续执行< 1 > 、< 2 >,直到循环条件不成立为止
(3)、for循环
语法:
执行过程:
<1>、 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
<2>、 进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
<3>、 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断
<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环
注意事项 :
1、 for 关键字后面括号中的三个表达式必须用 “;” 隔开,三个表达式都可以省略,但 “;” 不能省略。
a. 省略“循环变量初始化”,可以在 for 语句之前由赋值语句进行变量初始化操作,如:
b. 省略“循环条件”,可能会造成循环将一直执行下去,也就是我们常说的“死循环”现象,如:
在编程过程中要避免“死循环”的出现,因此,对于上面的代码可以在循环体中使用 break 强制跳出循环
c. 省略“循环变量变化”,可以在循环体中进行循环变量的变化,如:
2、 for 循环变量初始化和循环变量变化部分,可以是使用 “,” 同时初始化或改变多个循环变量的值,如:
3、循环条件部分可以使用逻辑运算符组合的表达式,表示复杂判断条件,但一定注意运算的优先级,如:
(4)、循环案例代码介绍:
案例1、 用while循环输出26个小写英文字母,并且分两行输出,每行13个
代码示例while循环:
public static void main(String[] args) {
//目标:用while循环输出26个小写英文字母,并且分两行输出,没行13个
char en='a';
int count=1;//用来控制输出的行数
while(en<='z') {
System.out.print(en+" ");
en++;
if(count%13==0)
System.out.println();
count++;//记录输出次数
}
}
结果:
案例2、猜字游戏。要求猜一个介于1-10之间的数字。然后将猜到的值与实际值进行比较,并给出提示,以便能更接近 实际值,直到猜中为止
代码示例while循环实现:
import java.util.Scanner;
public class CharDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int number=6;//存放真实值
System.out.println("输入1-10之间的猜的数:");
int num=sc.nextInt();
while(num!=number) {
if(num<number)
System.out.println("输入的数态小了!");
if(num>number)
System.out.println("输入的数 太大了!");
num=sc.nextInt();
}
System.out.println("恭喜你,猜对了 !");
}
}
代码示例值do-while循环实现:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int number=6;//存放真实值
System.out.println("输入1-10之间要猜的数:");
int num=sc.nextInt();
do {
if(num<number)
System.out.println("数太小");
if(num>number)
System.out.println("数太大");
System.out.println("输入1-10之间要猜的数:");
num=sc.nextInt();
}while(num!=number);
System.out.println("恭喜你,猜对了");
}
结果:
输入1-10之间的猜的数:
5
输入的数态小了!
7
输入的数 太大了!
6
恭喜你,猜对了 !
(5)、多重循环: 循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈
逻辑图示:
嵌套循环解决阶乘问题:
代码示例:
public class CharDemo {
public static void main(String[] args) {
//计算1!+2!+3!+4!(循环嵌套使用案例)
int s=1;//乘积初始值为1
int sum=0;//求和
for(int i=1;i<=4;i++) {
s=1;//外层循环每次开始之前都有置1,防止影响乘积
for(int j=1;j<=i;j++) {
s=s*j;
}
sum=sum+s;
}
System.out.println("1!+2!+3!+4!="+sum);
}
结果:
1!+2!+3!+4!=33
(6)、跳转语句break和continue
break:我们可以使用 break 语句退出指定的循环,直接执行循环后面的代码。可以放在switch、或循环中
continue:continue 的作用是跳过循环体中剩余的语句执行下一次循环。continue只能值循环语句中使用
三、debug入门断点调试
1、断点调试介绍:程序运行后,没有达到我们的希望的结果,因此需要找到原因,找原因的方法就是调试
2、断点调试步骤:
第一步:根据经验找到可能有错误的语句设置断点,断点可以设置多个
第二步:开启debug模式(F11快捷键进行debug,小蜘蛛图标、debug as运行、菜单栏中的debug等方式)
第三步:单步运行调试,观察变量值的变化(快捷键介绍:F6是单步运行)
第四步:找到错误原因并改正
3、在一个程序中设置多个断点的情况
F8快捷键能从一个断点调到下一个断点,略过了中间的语句
断点在循环中时,没执行一个循环就是有一个断点