本节内容为昨天未讲完的内容
本节知识大纲:
循环结构
while
语法结构
while(循环条件){
循环体;
}
执行顺序
1:判定循环条件,如果条件为真执行循环体1次
2:再次判定循环条件,直到循环条件不满足,整个循环结束。
代码
public class Demo05{
public static void main(String[] args){
//1声明变量存放结果
int sum = 0;
//2声明变量存放1-100之间的数
int num = 1;
while(num<=100){
sum+=num;
num++;
}
System.out.println(num+"=="+sum);
}
}
do-while
语法结构
do{
循环体
}while(循环条件);
执行顺序
1:先执行循环提一次
2:再判定循环条件,如果条件为真执行循环体1次
3:再次判定循环条件,直到循环条件不满足,整个循环结束。
注意事项:
while先判定在执行
do-while先执行在判定
代码
public class Demo06{
public static void main(String[] args){
//1声明变量存放结果
int sum = 0;
//2声明变量存放1-100之间的数
int num = 1;
do{
sum+=num;
num++;
}while(num<=100);
System.out.println(num+"=="+sum);
}
}
for
语法结构
for(声明循环变量;循环条件;改变循环变量的表达式){
循环体;
}
执行顺序
执行顺序
1:声明循环变量 (降低生命周期 调高内存利用率)
2:判定循环条件 如果循环条件为真,执行循环体一次
3:改变循环变量的值,判定循环条件,直到循环条件不满足整个循环结束
注意事项:
1:确定循环次数可以使用for循环
代码
public class Demo07{
public static void main(String[] args){
//声明存放结果
int sum = 0;
for(int num=1;num<=100;num++){
sum += num;
}
System.out.println(sum+"=="+num);
}
}
跳出循环的方法
continue
tips:
continue:跳过本次循环 这次循环不执行 跳到下次循环开始
代码:
public class Demo09{
public static void main(String[] args){
//编写for循环产生1-100之间的数字
for(int i = 1;i<=2;i++){
//判定 对于i进行判定
if(i%5==0){
System.out.print(i+"\t");
break;
}else{
continue;
}
//System.out.println("a");
}
}
}
break
tips:
break: switch 防止穿透 跳出当前循环 break所在的循环
代码:
public class Demo11{
public static void main(String[] args){
//声明一个变量存放累加的和
int sum = 0;
//通过for循环 做1-100之间的累加和
for(int i = 1;i<=100;i++){
sum += i;
//判定sum的值
if(sum>=3000){
System.out.println("累加到"+i+"的值,和是:"+sum);
return;
}
}
System.out.println("我是for循环外面的代码");
}
}
return
tips:
结束当前方法
代码:
public class Demo11{
public static void main(String[] args){
//声明一个变量存放累加的和
int sum = 0;
//通过for循环 做1-100之间的累加和
for(int i = 1;i<=100;i++){
sum += i;
//判定sum的值
if(sum>=3000){
System.out.println("累加到"+i+"的值,和是:"+sum);
return;
}
}
System.out.println("我是for循环外面的代码");
}
}
方法
方法注意事项
方法:
1:什么是方法?(函数)
方法就是一个段代码的集合,这段代码完成了某个具体的功能 业务场景()。
一个方法就是一个功能。
2:为什么使用方法?
避免main方法中的代码堆积,造成后期的拓展以及维护的成本增加。
3:如何使用方法?
a:照着main方法抄了一个方法,少了String[] args
b:在方法中通过方法名称调用需要执行的方法
方法()中的内容 参数,就相当于一个天线,用来接收调用者发送的数据信息。
声明一个方法 将方法计算出来的结果 让其他方法也可以使用
一个方法中声明了void 证明该方法无返回值。
不能写return返回语句。
如果一个方法存在返回结果,方法的对应处的void修改为返回数据的数据类型。
在方法体最后一行语句通过return返回具体的值。
代码:
/**
计算圆柱体的表面积
1:声明一个方法计算圆的面积
2:声明一个方法矩形的面积
3:声明一个方法计算累加和
1:如何声明?
照着main方法抄
2:这个方法完成什么功能
知道了方法中的逻辑如何编写
3:这个方法的执行需不需要帮忙?
参数列表
1:方法就是一个功能模块,完成某个功能。
不要重复造轮子。方法是可以复用的。
2:变量:首字母小写 其它每个单词的字母均大写
类: 首字母大写 其它每个单词的字母均大写
方法:首字母小写 其它每个单词的字母均大写
*/
import java.util.Scanner;
public class Demo05{
public static void main(String[] args){
System.out.println("请输入计算的圆的半径>>>>>>");
//创建一个Scanner对象
Scanner input = new Scanner(System.in);
//通过Scanner对象中的nextInt方法获取用户输入的int值
int r = input.nextInt();
double area = getArea(r);
System.out.println("请输入计算的圆柱体的高>>>>>>");
//通过Scanner对象中的nextInt方法获取用户输入的int值
int width = input.nextInt();
//计算半径为r的圆的周长
double length = getZC(r);
//计算矩形的表面积
double jArea = getArea(length,width);
//计算圆柱体的表面积
double sumArea = getYZT(area,jArea);
System.out.println("以半径为"+r+"的,高为"+width+"的圆柱体的表面积是:"+sumArea);
}
public static double getYZT(double yArea,double jArea){
return yArea*2+jArea;
}
/**
//@+单词 注解
@param r 需要计算的圆的半径
@return double 返回计算的圆的周长
*/
public static double getZC(int r){
//参数判定 代码的健壮性更好 防御性编程
if(r==0){
return 0;
}
//计算周长
double pi = 3.14;
double zc = 2*pi*r;
//返回周长
return zc;
}
/**
计算矩形的面积
*/
public static double getArea(double length,int width){
double area = length*width;
//System.out.println(area);
return area;
}
/**
计算半径r的圆的面积
*/
public static double getArea(int r){
//声明一个变量存放pi的值
double pi = 3.1415;
//声明圆的半径
//int r = 4;
//计算面积
double area = pi*r*r;
System.out.println("半径是"+r+"的圆的面积是"+area);
return area;
}
}
方法重载
在一个类当中编写方法的时候,多个方法其实所做的事情是一样的
为了契合方法起名要见名知意,方法名称可以一样。
在一个类中定义同名方法是可以的,称之为重载。
2同:
同类
同名
3不同:
参数列表长度不同
参数列表类型不同
参数列表顺序不同
方法重载面试题
/**
重载方法的面试题
以下程序中输出什么内容
最近最优
char
byte short int long float double
如果没有基本数据类型 接下来找基本数据类型的包装类
才会找可变参数
*/
public class Demo07{
public static void main(String[] args){
char ch = 'A';
info(ch);
}
/*public static void info(char ch){
System.out.println("info char");
}*/
public static void info(int ch){
System.out.println("info int");
}
/*public static void info(long ch){
System.out.println("info long");
}*/
public static void info(double ch){
System.out.println("info double");
}
}
/**
重载方法的面试题
以下程序中输出什么内容
如果程序中的重载方法,都没有完全符合的。
但是存在多个能够调用的方法时,程序会报错
*/
public class Demo08{
public static void main(String[] args){
info(12,12.1f);
}
public static void info(char ch,double d){
System.out.println("info char ch,double d");
}
public static void info(int ch,double d){
System.out.println("int ch,double d");
}
public static void info(long ch,float d){
System.out.println("long ch,float d");
}
}
/**
重载方法的面试题
以下程序中输出什么内容
*/
public class Demo09{
public static void main(String[] args){
info(12);
}
/*public static void info(long l){
System.out.println("info long l");
}*/
/*public static void info(Integer in){
System.out.println("Integer in");
}*/
/*
jdk1.5之后,支持可变参数
*/
public static void info(int ... ins){
System.out.println("Integer ... ins");
}
}

