灯塔11.15练习

本文介绍了Java编程中的基本概念,包括数组操作(如遍历和获取最大值)、查找元素的方法、return与break的区别、内存分配(栈、堆、方法区),以及引用数据类型和基本数据类型的传递方式。同时探讨了算法示例(质数判断)和实际问题(计算机票价格)的应用。
摘要由CSDN通过智能技术生成

遍历求最大值
//定义数组
        int arr[]= {11,22,33,44,55};
        //调用方法遍历数组
        int max=getMax(arr);
        System.out.println(max);
}
    public static int getMax (int arr[]) {
        int max=arr[0];
        for (int i=1;i<arr.length;i++) {
            if(arr[i]>max) {
            max=arr[i];
        }
    }
        return max;

确定一个数其是否存在    
int arr[]= {44,55,66,99,77};
    boolean flag=contains(arr,55);
    System.out.println(flag);
    }
    public static boolean contains(int[]arr,int number) {
        for(int i=0;i<arr.length;i++) {
            if(arr[i]==number) {
                return true;
            }
                }     
        return false;

return与break的区别
return:1.其实和循环没关系,跟方法名有关,表示1结束方法,2返回结果
    2.如果执行到了return,那么整个方法全部结束,里面的循环也会随之结束    
break:其实和方法没有什么关系,结束循环和switch有关
Java内存分配
栈:方法运行时使用的内存,方法进栈运行,运行完毕就出栈
堆:new出来的,都在堆内存中开辟一个小空间
方法区:存储可以运行class的文件
本地方法栈:jvm在使用操作系统功能的时候使用,和我们开发无关
寄存器:给CPU使用,和我们开发无关。

基本数字类型:
整数类型,浮点数类型,布尔类型,字符类型。

基本数字类型:(赋值给其他变量,也是赋的真实值)
数据值是存储在自己空间中
引用数据类型:(赋值给其他变量,赋的是地址值)
数据值储存在其他空间中,自己空间中存储的是地址值。
在一个代码中,如果没有new说明其没有栈内存
例:
public static void main(String[]args) {
        int number=100;
        System.out.println("调用方法之前:"+number);
        change(number);
        System.out.println("调用方法之后:"+number);
    }    
     public static void change(int number) {
         number=200;
     }
运行结果:
调用方法之前:100
调用方法之后:100
结论:当我们传递基本数据类型时,传递的是真实数据,形参的改变,不影响实际参数的值

例:
public static void main(String[]args) {
        int number=100;
        System.out.println("调用方法之前:"+number);
        number=change(number);
        System.out.println("调用方法之后:"+number);
    }    
     public static int change(int number) {
         number=200;
         return number;
     }


运行结果:
调用方法之前:100
调用方法之后:200

public static void main(String[]args) {
    int [] arr= {10,30,20};
    System.out.println("调用方法前:"+arr[1]);
    change(arr);
    System.out.println("调用方法后:"+arr[1]);//两个变量指向同一空间
        }
    public static void change(int [] arr) {
        arr[1]=200;
    }
运行结果:
调用方法前:30
调用方法后:200
结论:当传递引用数据类型的时候,传递的是地址值,形参的改变,影响实际参数的值

卖飞机票:
机票价格按照淡季,旺季,头等舱,经济舱收费,输入机票原价,月份和头等舱或经济舱
按照如下计算机票价格:
旺季(5-10月)头等舱九折经济舱6.5折
淡季(11月到次年4月)头等舱7折经济舱6.5折

public static void main(String[]args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入机票的原价:");
    int price=sc.nextInt();
    System.out.println("请输入当前月份:");
    int months=sc.nextInt();
    System.out.println("请输入当前的座位类型:");
    int seat=sc.nextInt();
    //0头等舱,1经济舱
    if(months>4&&months<11) {
        if(seat==1) {
            price=(int)(price*0.9);
            }else if(seat==0){
            price=(int)(price*0.85);    
        }
    }
    else if((months>0&&months<5)||(months>10&&months<13)){
        if(seat==1) {
            price=(int)(price*0.7);    
        }else if(seat==0){
            price=(int)(price*0.65);
        }else{ System.out.println("键盘录入的月份不合法");
    }
    }
    System.out.println(price);

判断101~200之间的质数个数:        
                       public static void main(String[]args) {
    int count=0;
    for(int i=100;i<=200;i++) {
        boolean flag=true;
    for(int j=2;j<=99;j++) {
        if(i%j==0) {
            flag=false;
            break;
            }
        }
    if(flag) {
            System.out.println("当前这个数字"+i+"是质数");
            count++;
        }else {System.out.println("当前这个数字"+i+"不是质数");}    
    }    

    System.out.println("一共有"+count+"个质数");}
}
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值