有关方法的复习及代码练习

方法的定义格式:
修饰符  返回值的数据类型 方法名(参数1,参数2,…,参数n){
语句序列;
return 表达式;

方法的调用格式:直接调用:方法名(实参);
赋值调用:数据类型 变量名=方法名 (实参);
【特殊的方法的定义格式】
public static void 方法名(){
语句序列;

调用格式:方法名();

【注意】1:方法与方法之间是平级关系,不能嵌套定义。
2:方法的编写顺序和执行顺序无关。
3:方法的返回值类型为void (无返回值),方法内则不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
4:return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。
5:方法不调用就不执行。
6:方法中的参数称为形式参数,简称形参。当调用方法时用于接受数据,而传递给方法的值称为实际参数,简称实参,形参用于接收实参。
7:Java的基本类型的参数传递:值传递。
8:在传输实参给方法的形参的时候,并不是传输实参变量本身,而是在传输实参变量中的存储的值,这就是值传递。
9:方法的运行区域在栈内存。
10:基本类型和引用类型的参数在传递的时候
相同点:都是值传递。
不同点:基本类型的参数传输存储的数据值。
引用类型的参数传输存储的地址值。

方法重载:同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法。与返回值类型无关。
【注意】形参列表不同指的是:形参的个数,类型,顺序不同,不关心形参的名称。

 

代码练习
1   将数组arr中从索引from(包含from)开始,到索引to(不包含to)的元素复制到新数组中

 package com.company;

public class Main {

    public static void main(String[] args) {

int []arr={23,56,78,44,11,29,88,87,};

int []copyarr=GetNewArr(arr,3,7);

for(int i=0;i<copyarr.length;i++){

    System.out.print(copyarr[i]+" ");

}

    }

    public static int[] GetNewArr(int[]arr,int from,int to){

        int []newarr=new int[to-from];

        int index=0;

        for(int i=from;i<to;i++){

            newarr[index]=arr[i];

            index++;

        }

        return newarr;

    }

}

2  机票价格按照淡季旺季,头等舱和经济舱收费,输入机票原价,月份和头等舱或经济舱。

按照如下规则计算机票价格:旺季(5-10月)头等舱九折,经济舱八点五折,淡季(11月到来年4月)头等舱七折,经济舱六点五折。

package com.company;
import java.util.*;
public class Main {
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入机票的原价:");
    int ticket=sc.nextInt();
    System.out.println("请输入月份:");
    int month=sc.nextInt();
    System.out.println("请输入座位 0 头等舱 1经济舱");
    int seat=sc.nextInt();
    if(month>=5&&month<=10){
        int newticket=getprice(ticket,seat,0.9,0.85);
            System.out.println("打折后的机票价钱为"+newticket);
        }else if((month>=1&&month<=4)||(month>=11&&month<=12)){
        int newticket=getprice(ticket,seat,0.7,0.65);
        System.out.println("打折后的机票价钱为"+newticket);
    }else {
        System.out.println("输入的月份不合理");
        }
    }
    public static int getprice(int ticket,int seat,double v0,double v1){
        if(seat==0){
        ticket=(int)(ticket*v0);
        }else if(seat==1){
         ticket=(int)(ticket*v1);
        }else{
            System.out.println("输入的座位不正确");
        }
            return  ticket;
    }
}

3 在唱歌比赛中,有六名评委给选手打分,分数范围是0~100之间的整数。选手的最后得分为:去掉最高分,最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分

package com.company;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        int[] scoresarr=getscores();
        for(int i=0;i<scoresarr.length;i++){
            System.out.print(scoresarr[i]+" ");
        }
        int max=getMax(scoresarr);
        int min=getMin(scoresarr);
        int sum=getSum(scoresarr);
        int avg=(sum-max-min)/(scoresarr.length-2);
        System.out.println("选手的最终得分为"+avg);
    }
    public static int getSum(int[] scoresarr){
        int sum=0;
        for(int i=0;i<scoresarr.length;i++){
            sum=sum+scoresarr[i];
        }
        return sum;
    }
    //求数组的最大值
    public static int getMax(int[] scoresarr){
        int max=scoresarr[0];
        for(int i=1;i<scoresarr.length;i++){
            if(scoresarr[i]>max){
                max=scoresarr[i];
            }
        }
        return max;
    }
    //求数组的最小值
    public static int getMin(int[] scoresarr){
        int min=scoresarr[0];
        for(int i=1;i<scoresarr.length;i++){
            if(scoresarr[i]<min){
                min=scoresarr[i];
            }
        }
        return min;
    }
    //定义一个数组
    public static int[] getscores(){
        int[] scores=new int[6];
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<scores.length;){
            System.out.print("请输入评委的打分:");
            int score=sc.nextInt();
            if(score>=0&&score<=100) {
                scores[i] = score;
                i++;
            }else{
                System.out.print("成绩超出了范围,继续录入,当前i的值为"+i);
            }
        }
        return scores;
    }
}

4某系统的数字密码(大于0),比如1983,采用加密方式进行传输。 规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数

package com.company;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        int number=1983;
        int temp=number;
        int count=0;
        while(number!=0){
            number=number/10;
            count++;
        }
        int[] arr=new int[count];
        int index=arr.length-1;
        while(temp!=0){
            int ge=temp%10;
            temp=temp/10;
            arr[index]=ge;
            index--;
        }
        for(int i=0;i<arr.length;i++){
            arr[i]=(arr[i]+5)%10;
        }
        for(int i=0,j=arr.length-1;i<j;i++,j--){
            int newtemp=arr[i];
            arr[i]=arr[j];
            arr[j]=newtemp;
        }
        int newnumber=0;
        for(int i=0;i<arr.length;i++){
            newnumber=newnumber*10+arr[i];
        }
        System.out.println("加密之后的数字为 "+newnumber);
    }
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值