前言:这些知识都是我自己学习之后总结的,如果有哪些地方错误或者不太好的的地方,可以评论区告诉我,我会进行改正!!谢谢!!加油,小朋友们!!
1,顺序结构
顺序结构比较简单,按照代码书写的顺序一行一行的执行就可以了,如果调换代码的书写顺序,则执行顺序也发生改变(像下面的代码,比较简单)
2,分支结构
2.1, if语句
if语句有三种书写方式,其实和c语言程序设计中的差不多,唯一不同的是,if语句的条件是布尔表达式
(1)语法格式1
if(布尔表达式){
//语句
}
如果布尔表达式的结果为true,执行if中的语句,否则不执行。(例子如下)
(2)语法格式2
if(布尔表达式){
//语句1
}else{
//语句2
}
如果布尔表达式结果为true,则执行if中的语句,否则执行else中的语句。(例子如下)
(3)语法格式3
if(布尔表达式1){
//语句1
}else if(布尔表达式2){
//语句2
}else{
//语句3
}
如果布尔表达式1成立,则执行语句1,否则布尔表达式2成立,执行语句2,否则执行语句3。(例子如下,我们主要看if语句)
注意:
1, 在这些语句中,有一点需要提醒的(如下代码)
在c语言程序设计中的if语句是可以这样子写的,但在Java中,这样子写编译器就会报错,因为在c语言里面,"1<a"为真,则返回1,“1<3"也为真,所以编译通过,可以打印a;但是在Java里面,if语句括号里面放的是布尔表达式,"1<a"返回true,true不可能和3比较,程序无法执行,所以编译器会报错。
那我们应该怎么去写呢?如下代码:
2,分号问题(比如很多初学者都会这样子写,我们需要留意一下,如下)
此处多写了一个分号,导致分号成为了if语句的语句体,而{}中的代码已成为和一个与if无关的代码块。所以这里输出”你真好看!“。
3,悬垂else问题
在上面这个代码中,我们可以看出,else和第二个if相匹配。所以我们可以知道,if/else语句中可以不加大括号,但是也可以写语句(只能写一条语句)。此时else与最近的if相匹配。(建议一般加上大括号,这样子可以增加程序的可读性) 。
2.2,switch语句
1,基本语法:
switch(表达式){
case 常量值1:{
语句;
[break;]
}
case常量值2:{
语句2;
[break;]
}
....
default:{
内容都不满足执行语句;
[break;]
}
}
执行流程:
(1)先计算表达式的值
(2)和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时就结束
(3)当表达式的值没有与所列项匹配时,执行default
2,代码示例
注意:(1),多个case后的常量值不可以重复
(2),switch的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int,不能是long、float、double、boolean类型
引用类型:String常量串、枚举类型
(3)switch不能表达复杂表达式(如下)
此时编译器会报错,可以看出switch语句的局限性。
(4)switch语句是支持嵌套使用的,但一般不支持。
3,循环语句
3.1while循环
(1)基本语法格式:
while(循环条件){
循环语句;
}
循环条件为true,则执行循环语句,否则结束循环。
例子1:计算5的阶层
例子2:
注意:1,和if循环类似,while下面的语句可以不写{},但是不写的时候只能支持一条语句。建议还是加上{}。
2,和if类似,while后面的{建议和while写在同一行。
3,和if类似,while后面不要多写分号,否则可能导致循环不能正确执行。
3.2,break
break的功能是让循环提前结束(也就是如果在循环当中遇到break,代表整个循环结束)
例子:
3.3,continue
continue的功能是跳过这次循环,立即进入下一次循环。
例子:
执行到continue语句的时候,就会立即进入下次循环(判定循环条件),从而不会执行到下面的打印语句。
3.4for循环
基本语法:
for(表达式1;布尔表达式2;表达式3){
表达式4;
}
表达式1:用于初始化循环变量初始值设置,在循环最开始的时候执行,只执行一次。
表达式2:循环条件,必须是布尔表达式。满足条件则循环继续,否则循环结束。
表达式3:循环变量更新方式。
例子:
其中表达式1可以放在外面;布尔表达式2可以省略,但此时编译器会默认其永远为真,程序会进入死循环;表达式3不能省略,会进入死循环,没有意义。
3.5,do while循环
基本语法:
do{
循环语句;
}while (循环条件);
先执行循环语句,再判定循环条件,循环条件成立则继续执行,否则循环结束。
例子:
那么do while循环和while循环有什么区别呢?(我们来看以下的代码)
上面这个代码很明显的表达了两者的区别,我表达能力不好,就不用文字表达了,,嘻嘻。。
但是有两点我需要提醒的是:1,do while循环最后的分号不要忘记。
2,一般do while很少用到,更推荐使用for和while循环。
4,从键盘输入(使用Scanner读取字符串/整数/浮点数)
例子:
注意1,:当你用Scanner的时候,编译器前面自动会导入一个util包,也就是"import java.util.Scanner;" ;
2,这里的"System.in"表示”键盘读取数据“
3,"next"意思就是“遇到空格读取结束”,就是当你键盘输入中有空格时,遇到空格就会结束。所以我们在这里使用"nextLine",其作用就是“读取一行数据(也会读取空格)”。
例子2:
注意:当循环输入多个数据的时候,使用ctrl+z来结束输入(Windows上使用的时ctrl+z,Linux/Mac上使用的是ctrl+d)。