一.for循环与while循环的区别
1.格式
for循环:
for(初始化语句;条件表达式;步长语句){
循环体语句;
}
while循环:
初始化语句;
while(条件表达式){
循环体语句;
步长语句;
}
2.是否节省内存空间
for循环结束,这个变量及时从内存中释放掉了
while循环结束,这个变量依然可以访问的
3是否明确循环次数
for循环:明确循环次数
while循环:不明确循环次数
二.死循环及其应用
格式:
格式1:
for(;;){
循环体语句;
}
格式2:(推荐)
while(true){
循环体语句;
}
应用:
需求:使用Math类中的方法 random()获取一个1-100之间的随机数
//导包
import java.util.Scanner;
class GuessGame{
public static void main(String[] args){
//产生一到一百之间的随机数
int number = (int)(Math.random()*100+1);
//做while死循环
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要猜的数字:");
int guess = sc.nextInt();
//做if判断,提示大小,猜对直接结束
if(guess>number){
System.out.println("你猜大了");
}else if(guess==number){
System.out.println("你猜对了");
break;
}else{
System.out.println("你猜小了");
}
}
}
}
三.方法
1.概念
使用{}将代码包裹起来,并给这个代码起一个名字:方法名---->以后直使用方法名调用.
2.分类
<1>有返回值类型的方法的定义
1.固定格式:
public static 返回值类型 方法名(形式参数类型1 参数名称1,...){
业务需求...
return 结果;
}
2.调用方法:赋值调用
需求:求和两个数据的和
两个明确:
1)明确返回值类型: int类型
2)明确参数类型以及参数个个数:int类型 两个参数求和
public static void main(String[] args){
//调用add()方法,输出结果
add(10,20);
System.out.println("二者之和为:"+add(10,20));
}
public static int add(int m,int n){
//返回需求结果
return m+n ;
}
/*注意事项:定义方法时,必须携带参数类型;
调用方法时,实参不用携带数据类型.*/
<2>无返回值类型的方法定义
语法要求:如果没有具体返回值结果,使用void来代替返回值类型
//1.定义格式:
public static void 方法名(形式参数类型1 变量名1,..){
直接输出语句或者
其他业务操作;
}
/*2.实例:
需求:键盘录入一个n数据,打印nn乘法表*/
import java.util.Scanner;
class Demo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入乘法表阶数:");
int n = sc.nextInt();
printChengfabiao(n);
}
public static void printChengfabiao(int n) {
for(int x = 1 ; x <= n ;x ++){
for(int y = 1 ; y <= x ; y ++){
System.out.print(y+"*"+x+"="+y*x+"\t") ;
}
System.out.println() ;
}
}
}
注意:Java中不存在void类型(替代词)
3.重载
定义: 方法名相同,参数列表不同,与返回值无关.
参数列表不同:
1)数据类型一样的,参数个数不同
2)参数个数一样,类型不同
参数个数不一样,参数类型不同
//举例:求n个数之和,方法名均为sum;
class FunctionDemo{
public static void main(String[] args){
//使用实际参数
//输出调用
System.out.println(sum(10,20)) ;
System.out.println("------------------") ;
//System.out.println(sum2(10,20,30)) ;
System.out.println(sum(10,20,30)) ;
System.out.println("------------------") ;
//System.out.println(sum3(10,20,30,40)) ;
System.out.println(sum(10,20,30,40)) ;
System.out.println(sum(1.34,2.35)) ;
}
//定义两个数据之和的方法
public static int sum(int a ,int b){
return a + b ;
}
//一模一样的方法:方法名相同,参数类型都一样:重复定义!
/*
public static int sum(int a ,int b){
return a + b ;
}
*/
public static double sum(double a,double b){
return a + b ;
}
//定义三个数据求和的方法
//public static int sum2(int a,int b,int c){
public static int sum(int