1.Java中程序的结构与逻辑控制
在Java中一共有三种结构:顺序结构、分支结构、循环结构
(1)Java分支结构
分支结构:进行逻辑判断,当满足某些条件时才会执行某些语句
- if语句
两种形式:
1.
if(布尔表达式){
//条件满足时执行代码
}else{
//条件不满足时执行代码
}
2.
if(布尔表达式1){
//条件1满足时执行代码
}else if(布尔表达式2){
//条件2满足时执行代码
}else{
//条件都不满足时执行代码
}
→ 使用if-else语句可以实现对条件的判断,但如果要进行多值判断,可以使用switch语句
- switch语句
语法如下:
switch(数字|枚举|字符|字符串){
case 内容1:{
内容1满足时执行语句;
break;
}
case 内容2:{
内容2满足时执行语句;
break;
}
...
case default:{
内容都不满足时执行语句;
break;
}
}
示例:
System.out.println("请输入字符:");
char x = (char)System.in.read();
switch(x){
case 'a':{
System.out.println("I am a cat.");
break;
}
case 'b':{
System.out.println("I am not a cat.");
break;
}
default:{
System.out.println("I am really not a cat.");
break;
}
}
运行结果如下:
→ 不带break的switch语句会将满足条件后的分支统统走一遍
示例:
System.out.println("请输入字符:");
char x = (char)System.in.read();
switch(x){
case 'a':{
System.out.println("I am a cat.");
}
case 'b':{
System.out.println("I am not a cat.");
}
default:{
System.out.println("I am really not a cat.");
}
}
运行结果如下:
(2)Java循环结构
循环结构:某几行代码一直被执行
- while循环
语法结构如下:
while(循环结束条件判断){
循环语句;
修改循环结束判断;
}
while循环特点:如果条件不成立,一次也不执行;而do-while,至少执行一次
- do-while循环
语法如下:
do{
循环语句;
修改循环结束判断;
}while(循环结束条件判断);
- for循环
for(循环初始化;循环结束判断;修改循环结束条件){
循环体;
}
循环使用规则:
对于不知道循环执行次数,但知道循环结束条件的,使用while;
明确知道循环次数的,使用for
(3)循环控制(continue,break)
continue:跳出本次循环,直接进入下一次循环。
break:直接跳出整个循环
2.Java中方法的定义与使用
方法是一段可以被重复调用的代码块
(1)方法定义(针对直接在主方法中调用的方法)
结构如下:
public static 方法返回值 方法名称([参数类型 变量...]){
方法体代码;
...
[return 返回值];
}
void关键字声明的方法没有返回值,可以用“return;”来结束函数的调用,示例如下:
public class Test{
public static void main(String[] args) {
myPrint(1);
myPrint(2);
myPrint(3);
myPrint(4);
}
public static void myPrint(int x){
if (x==2) {
return ;//若执行此语句,则此语句后面的代码不被执行,方法结束调用。
}else {
System.out.println(x);
}
}
}
运行结果:
对于有返回值的函数,返回值可以是基本类型和引用类型
示例:
public class Test{
public static void main(String[] args) {
System.out.println(add(5,5));
}
public static int add(int x,int y){
return x+y;
}
}
3.方法重载
定义:方法名称相同,参数的个数、顺序或类型不同,与方法返回值无关。
方法的签名:指的是方法名与参数,返回类型不是签名的一部分
注:不能有两个名字相同、参数类型也相同却返回不同类型值的方法。
编码规范:重载函数的返回值类型一定要保持相同。
示例:
public class Test{
public static void main(String[] args) {
System.out.println(add(5,5));
System.out.println(add(5,5,55));
}
public static int add(int x,int y){
return x+y;
}
public static int add(int x,int y,int z){
return x+y+z;
}
}
开发原则:在进行方法重载时,要求方法的返回值一定相同
4.方法递归
定义:指的是一个方法自己调用自己的方式。
递归方法的特点:
① 方法必须有递归结束条件
② 方法在每次递归处理的时候一定要作出一些变更
示例:递归实现从1到100的叠加
public class Test{
public static void main(String[] args) {
System.out.println(sum(100));
}
public static int sum(int num){
if (num == 1) {
return 1;
}else {
return num+sum(num-1);
}
}
}
→ 通过代码我们可以看到,使用while循环的操作,大部分都可以使用递归替换,之所以使用递归,因为方法可执行的操作更多,结构也更好