Java基础总结3

Java基础总结3

1.循环的嵌套

 public class FirstDemo{

 //入口方法

 /**

循环的嵌套

在循环体内部去嵌套一个循环,一般情况下,嵌套不要超过三层

语法:

while(表达式){

while(表达式){

//循环体;

}

//循环体;

}

for(;;){

//内部循环

for(;;){

//循环体;

}

}

循环控制语句;

break;//可用于switch循环语句,break后跳出当前循环

continue;//跳过本次循环,继续下次循环;

return; //返回到当前方法调用处,可以结束所有循环;

 */

 public static void main(String[]args){

 /**

1.

*****

*****

*****

*****

2.

   *****

  *****

 *****

*****

3.

*

***

*****

*******

 */

 //双重for循环的使用

 for(int i=0;i<3;i++){//外层循环执行3次

 System.out.println(i+"王者不可阻挡!");

 //内层循环

 for(int j=0;j<4;j++){//内层循环执行4次

 System.out.println(j+"    买橘子");

 }

 System.out.println(i+"  陈独秀  ");

 }

 //1.打印第一个图形

 //外层循环控制行数

 for(int row=0;row<4;row++){

 //内层循环控制列数

 for(int col=0;col<5;col++){

 //打印小星星

 System.out.print("*");

 }

 //换行操作

 System.out.println();

 }

 //2.打印第二个图形

 //外层循环控制行数

 for(int row=0;row<4;row++){

 //内层循环控制列数

 //列数=空格数量+星星数量;

 //空格的数量=总行数-当前行数下标-1;

 //星星的数量=5;

 for(int col=0;col<5+4-row-1;col++){

 //判断空格

 if(col<4-row-1){

 //打印空格

 System.out.print(" ");

 }else{

 //打印小星星

 System.out.print("*");

 }

 }

 //换行操作

 System.out.println();

 }

 //3.打印第三个图形

 //外层循环控制行数

 for(int row=0;row<4;row++){

 //内层循环控制列数

 for(int col=0;col<2*row+1;col++){

 //打印小星星

 System.out.print("*");

 }

 //换行操作

 System.out.println();

 }

 //循环控制语句:break;

 for(int i=0;i<10;i++){

 if(i==3){

 break;//跳出当前循环体,结束循环

 }

 System.out.print(i+"\t");

 }

 System.out.println();

 //循环控制语句:continue;

 for(int i=0;i<10;i++){

 if(i==3){

 continue;//结束本次循环,继续下次循环

 }

 System.out.print(i+"\t");

 }

 System.out.println();

 //return

 for(int i=0;i<10;i++){

 if(i==3){

 return;

 }

 System.out.print(i+"return\t");

 }

 System.out.println("我知道");

 }

 }

输出结果:

练习题

 /**

1.

   *

  ***

 *****

*******

2.

1*1=1

1*2=2 2*2=4

...

九九乘法表

3.求2-100内所有的素数

素数:除了1和本身能被除尽外,其他正整数都不能被除尽

 */

 import java.util.*;

 public class Test1{

 //入口方法

 public static void main(String[]args){

 //1.打印等腰三角形

 //初始化键盘录入对象

 Scanner in=new Scanner(System.in);

 System.out.println("1.等腰三角形");

 System.out.print("请输入行数:");

 int n=in.nextInt();  

 //外层循环控制行数

 for(int row=0;row<n;row++){

 //内层循环控制列数

 //列数=空格数+星星数;

 //空格数=总行数-当前行数下标-1

 //星星数=当前行数下标*2+1

 //col=n-row-1+row*2+1=n+row

 for(int col=0;col<n+row;col++){

 if(col<n-row-1){

 System.out.print(" ");

 }else{

 System.out.print("*");

 }

 }

 //换行操作

 System.out.println();

 }

 //2.打印九九乘法表

 //外层循环控制行数

 int product=1;

 System.out.println("2.九九乘法表");

 for(int row=1;row<=9;row++){

 //内层循环控制列数

 for(int col=1;col<=row;col++){

 //计算

 product=col*row;

 //输出

 System.out.print(col+"*"+row+"="+product+"\t");

 }

 //换行操作

 System.out.println();

 }

 //3.求2-100内所有的素数

 //外层循环控制行数

 System.out.println("3.素数");

 System.out.print("请输入一个整数:");

 n=in.nextInt();

 System.out.println("2-"+n+"的素数如下所示:");

 for(int row=2;row<=n;row++){

 //内层循环控制列数

 for(int col=2;col<=row;col++){

 if(row%col==0){

 if(row!=col){

 break;

 }else{

 System.out.print(row+"\t");

 }

 }

 }

 }

 

 }

 }

输出结果:

2.方法

 import java.util.*;

 public class SecondDemo{

 /**

方法:执行一段代码的集合

如何定义方法:

1.确定参与运算的未知参数();

2.确定方法调用时,是否有返回值(返回值类型);

语法:

修饰符 返回值类型 方法名([参数1,参数2,...]){

//方法体;

[return 返回值;]

}

定义方法的方式:

1.有参数 有返回值

2.有参数 无返回值

3.无参数 无返回值

4.无参数 有返回值

 */

 //入口方法

 public static void main(String[]args){

 //求三个数最大数

 int a=10,b=2,c=5;

 //调用方法 通过方法名 a,b,c 实参

 int max=getMax(a,b,c);

 System.out.println("最大数是"+max);

 outMsg("Hello Java!");

 mathAdd();

 System.out.println(getPI());

 Scanner in=new Scanner(System.in);

 System.out.print("请输入三角形的底:");

 double bottom=in.nextDouble();

 System.out.print("请输入三角形的高:");

 double height=in.nextDouble();

 double area=getTrinagleArea(bottom,height);

 System.out.println("三角形的面积为:"+area);

 }

 //1.有参数 有返回值

 //定义一个方法,求任意三个数的最大数

 public static int getMax(int a,int b,int c){

 //方法体 a,b,c 形参

 int max=a>b?a:b;

 max=max>c?max:c;

 //返回结果

 return max;

 }

 //2.有参数 无返回值

 public static void outMsg(String str){

 System.out.println(str);

 }

 //3.无参数 无返回值

 public static void mathAdd(){

 System.out.println(10+11);

 }

 //4.无参数 有返回值

 public static double getPI(){

 return 3.14159;

 }

 //练习:求三角形的面积

 public static double getTrinagleArea(double bottom,double height){

 double area=bottom*height/2;

 return area;

 }

 }

输出结果:

练习题

 import java.util.*;

 public class Test2{

 //方法:打印图形  n-m内的素数

 public static void main(String[]args){

 Scanner in=new Scanner(System.in);

 System.out.println("1.等腰三角形");

 System.out.print("请输入行数:");

 int n=in.nextInt();

 printGraphical(n);

 

 System.out.println("2.素数");

 System.out.print("请输入m:");

 int m=in.nextInt();

 System.out.print("请输入n:");

 n=in.nextInt();

 System.out.println(m+"-"+n+"的素数如下所示:");

 getPrime(m,n);  

 }

 //1.打印图形

 public static void printGraphical(int n){

 //外层循环控制行数

 for(int row=0;row<n;row++){

 //内层循环控制列数

 //列数=空格数+星星数;

 //空格数=总行数-当前行数下标-1

 //星星数=当前行数下标*2+1

 //col=n-row-1+row*2+1=n+row

 for(int col=0;col<n+row;col++){

 if(col<n-row-1){

 System.out.print(" ");

 }else{

 System.out.print("*");

 }

 }

 //换行操作

 System.out.println();

 }

 }

 //2.找出n-m内的素数

 public static void getPrime(int m,int n){

 //外层循环控制行数

 for(int row=m;row<=n;row++){

 //内层循环控制列数

 for(int col=2;col<=row;col++){

 if(row%col==0){

 if(row!=col){

 break;

 }else{

 System.out.print(row+"\t");  

 }

 }

 }

 }

 }  

 }

输出结果:

3.方法重载

 public class ThirdDemo{

 /**

方法重载:

1.两同一不同

两同:同类中,方法名相同;

一不同:方法参数列表不同:

1.参数个数 2.参数类型 3.参数顺序;

 */

 //入口方法

 public static void main(String[]args){

 //调用方法  

 method(90);

 method();

 method("浪子一秋");

 method("浪子一秋",21);

 method(21,"Java");

 }

 //方法重载

 public static void method(int a){

 System.out.println(a);

 }

 public static void method(){

 System.out.println(333);

 }

 public static void method(String name){

 System.out.println(name);

 }

 public static void method(String name,int age){

 System.out.println("222");

 }

 public static void method(int age,String like){

 System.out.println("111");

 }

 }

输出结果:

练习题

 //方法重载:求面积 周长

 public class Test3{

 //入口方法

 public static void main(String[]args){  

 double area=getArea(12);

 System.out.println("面积为:"+area);

 double perimeter=getPerimeter(12);

 System.out.println("周长为:"+perimeter);

 }

 //定义方法求面积

 public static double getArea(double bottom,double height){

 double area=bottom*height/2;

 return area;

 }

 public static double getArea(double r){

 double area=3.14*r*r;

 return area;

 }

 public static int getArea(int l){

 int area=l*l;

 return area;

 }

 public static int getArea(int lenght,int width){

 int area=lenght*width;

 return area;

 }

 //定义方法求周长

 public static double getPerimeter(double edge1,double edge2,double edge3){

 double perimeter=edge1+edge2+edge3;

 return perimeter;

 }

 public static double getPerimeter(double r){

 double perimeter=2*3.14*r;

 return perimeter;

 }

 public static int getPerimeter(int l){

 int perimeter=4*l;

 return perimeter;

 }

 public static int getPerimeter(int lenght,int width){

 int perimeter=2*(lenght+width);

 return perimeter;

 }

 }

输出结果:

4.递归方法

 public class FourthDemo{

 /**

 递归方法其实就是一个循环

1.必须有出口

 斐波纳契数列,其通项公式为:

 F(0)=1,F(1)=1,Fn=F(n-1) +F(n-2)(n>=3,n∈N*),

 现在求F(5)的值,怎么做呢?

 */

 //1.斐波纳契数列

 public static int f(int n){

 if(n==0)

 return 1;

 if(n==1)

 return 1;  

 return f(n-1)+f(n-2);

 }

 //入口方法

 public static void main(String[]args){

 //调用方法

 int n=f(5);

 System.out.println(n);

 }

 }

输出结果:

练习题

 //递归:求n以内的和 阶乘

 import java.util.*;

 public class Test4{

 //入口方法

 public static void main(String[]args){

 //初始化键盘录入对象

 Scanner in=new Scanner(System.in);

 System.out.print("请输入n:");

 int n=in.nextInt();

 int sum=getSum(n);

 System.out.println("1-"+n+"的和为:"+sum);

 System.out.print("请输入n:");

 n=in.nextInt();

 int factorial=getFactorial(n);

 System.out.println("1-"+n+"的阶乘为:"+factorial);  

 }

 //定义方法求和

 public static int getSum(int n){

 if(n==1)

 return 1;

 else

 return n+getSum(n-1);

 }

 //定义方法求阶乘

 public static int getFactorial(int n){

 if(n==1)

 return 1;

 else

 return n*getFactorial(n-1);

 }

 }

输出结果:

5.知识框架

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值