javaSE基础–流程控制**和函数
下面先说的是三元运算符,
条件表达式?表达式1:表达式2 ;
执行的流程是: 条件表达式为真的时候,执行表达式1,条件表达式为假的时候,执行表达式2.
//表达式1和表达式2的类型只能是同一种
String s=(7>3)?"对的":"错的";
System.out.println(s);
// 表达式1和表达式2的类型不是同一种
System.out.println((4>5)?"不对":12);
求两个数的最大值:
int a = 3 ;
int b = 5 ;
int max ;
max = a > b ? a : b;
System.out.println("max="+max);
求取三个数的最大值的两种方式
int a=10;
int b=5;
int c=8;
//方式1
int temp=a>b?a:b;
int max1=temp>c?temp:c;
System.out.println(max1);
//方式2
int max2=(a>b?a:b)>c?(a>b?a:b):c;
System.out.println(max2);
下面说说我们的if语句
第一种格式: if(条件表达式) 条件表达式满足的话就执行语句
{语句}
第一种 if(条件表达式){
语句1;
} else {
语句2;}
执行流程就是条件表达式满足,执行语句1,条件表达式不满足,执行表达式2
第三种:
if(条件表达式){
语句1;
}else if(条件表达式){
语句2;
}else{
语句3;
}
执行流程就是表达式满足,去执行对应的语句,都不满足的话 执行elsel里面的语句
来一个符合的if语句的练习:
//1,定义变量。记录数据。
int week = 9;
//2,通过判断结构语句if对该变量进行判断。
if(week == 1){
//3,根据不同的条件,通过输出语句显示不同的结果。
System.out.println(week+"对应的是星期一");
}
else if(week == 2) {
System.out.println(week+"对应的是星期二"); }
else if(week == 3){
System.out.println(week+"对应的是星期三");}
else if(week == 4){
System.out.println(week+"对应的是星期四");}
else if(week == 5){
System.out.println(week+"对应的是星期五"); }
else if(week == 6) {
System.out.println(week+"对应的是星期六"); }
else if(week == 7){
System.out.println(week+"对应的是星期日");}
else{
System.out.println(week+"没有对应的星期");}
if语句的注意事项是:
if语句,else if 语句,后面带有条件表达式语句, else不 允许
if,else if,else 语句如果里面是一条语句的话,{}可以省略。
下面说说我们的switch语句
switch语句格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
...
default:
执行语句;
break;
}
switch语句的解释:
case 后面跟得是要和表达式进行比较的值
语句体 :要执行的代码
break; 中断 结束的意思
default :和所有表达式都不匹配的 相当与 if 语句的else
switch语句的注意事项:
(1) switch(表达式里面必须是变量,而不是常量)
(2)case 的取值,不允许重复,重复的话就会报错
(3)switch语句是见到break语句才退出的,不见break语句就一直执行下去
(4)default 语句和case语句的顺序不分前后,我们习惯把default语句放在最后,
(5)default语句里面的break是可以省略的
面试题:byte ,long ,String 可以作为switch的表达式吗?
long :不可以作为表达式, String类型的JDK7之后可以
byte可以作为表达式,JDK5之后可以是枚举
来一个 练习
public static void main(String[] args) {
String moon = "小月";
switch(moon){
case "一月":
case "二月":
case "三月":
System.out.println("春");
break;
case "四月":
case "五月":
case "六月":
System.out.println("夏");
break;
case "七月":
case "八月":
case "九月":
System.out.println("秋");
break;
case "十月":
case "十一月":
case "十二月":
System.out.println("冬");
break;
default:
System.out.println("查询季度失败~~");
break;
}
}
if语句和switch语句的判断
f可以用于判断数值,也可以判断区间,只要运算结果是boolean类型,都可以进行判断。
switch用于对固定的几个值,进行判断。判断的值的类型有限。
下面说一说三种循环语句
根据程序的需求,可以将某些代码重复执行的操作。Java中的循环结构有如下三种:
-
while
:事先不需要知道循环执行多少次; 循环次数不确定 -
do-while
:同上,只是至少要执行一次(先做,后判断); -
for
:需要知道循环次数;while,for循环在执行的时候,先要判断条件是否满足,再去执行,
do,while循环,先执行一次,再去判断是否满足条件
while循环的格式:
while(条件表达式){语句}
while执行顺序
:当程序遇到while关键字时,JVM首先会运算while后面的条件表达式,当条件表达式为true时,就会执行while后面大括号中的语句,当把大括号中的所有语句执行完之后,会又回到while的条件表达式处再次判断,若还为true,就继续执行大括号中的语句,若为false就跳过大括号中的所有语句,继续往下执行。
//1,定义变量。一个记录和,一个记录下一个数。
int i = 1;
int sum = 0;
//2,需要循环结构。
while(i<=10)
{
//3,循环中需要进行和+下一个数的运算。并让下一个数自增。
sum = sum + i;
i++;
}System.out.println("sum = "+sum);
使用while循环的注意事项:-
while循环的括号中的表达式计算结果必须为boolean类型的值。
-
while循环的括号中不能直接写false常量。
-
while循环的括号后面不要写分号,循环控制语句的代码用大括号扩起来。
-
while循环控制的条件变量一定要更新,保证循环能够正常结束。
do while语句的格式:
do{
执行语句;
}while(条件表达式);
执行的顺序是: :先执行一遍语句,再去判断条件,条件满足的话就继续执行语句,当条件不满足的时候就结束我们的循环
接下来说的是我们的for循环:
for(表达式1;表达式2;表达式3){
语句;
}
for循环的执行流程: 先执行初始化语句,在判断表达式2是否满足条件,满足的话执行语句,再去执行表达式3,在去判断表达式2是否满足,满足的话主执行语句,执行表达式3. 一直到表示式不满足条件。
for循环和while循环的 区别:
for循环和while循环都是先判断条件,满足的话再去执行语句
for循环使用的是:次数确定的,while循环是用于次数不确定的
for循环里面的初始化变量,在for循环结束之后就在内存中释放了,while循环的变量在循环结束之后还是可以使用的。
说说我们常见的死循环 ,while(true){} , for(;😉{},
我们的流程控制语句,break,continue,return;
break:是结束本层的循环
continue: 结束本次的循环 进入下一次循环
return:我们用来结束方法。
方法/函数
就是定义在
类`中的具有特定功能的一段独立小程序,并能被多次使用。站在代码复用的角度来考虑,之前的打印矩形问题。
问题:要画矩形,需要不断使用该for嵌套代码。造成代码复用性很差。
解决:定义一个功能用于画矩形,每次只要使用该功能即可。这样提高复用性。
定义一个功能:
-
应该是一个封闭的区间。那就需要使用大括号将其封装。
-
需要给这个区间起个名字。以后通过这个名字来调用这个区间
-
这个区间需要有参与运算的数据。
-
需要定义该功能的结果类型。
方法有分为有返回值类型和无返回值类型的
现在方法面前加修饰符public static
有返回值类型:
public static int add(int a,int b){
return a+b;
}
注意:在调用有返回值类型的方法的时候,比如这个加数的方法返回值是int类型 ,你需要对方法的结果进行处理
System.out.println(add(3,4));
定义方法的格式为; 方法修饰符 返回值类型 方法名(参数列表){}
参数列表:里面参数的类型个参数的个数
无返回值类型的方法
public static void add(int a,int b){
System.out.println(a+b);
}
调用时:add(a+b);
在最后我们说一下方法的重载,
方法重载可以这样理解,同一个方法的不同的版本,
ta’shi它是方法名相同但是参数列表不相同
参数列表不相同就是(参数的个数和参数的类型)
方法重载改变了方法的 返回值类型
public int add(int a.int b)
{return a+b;}
public double add(double a,double b,double c){
return a+b+c;
}
-
-