15 可变参数列表

可变参数的应用:

一个方法中只能有一个可变参数;

可变参数必须在参数列表的最后一个位置;

参数列表中(形参是可变参数,实参为数组)是可行的,但反过来不行。


package com.wys.java;

public class ArgsDemo {
    /**
     * 一个方法中只能有一个可变参数;
     * 可变参数必须在参数列表的最后一个位置;
     * 参数列表中(形参是可变参数,实参为数组)是可行的,但反过来不行。
     * @param n
     */

    //可变参数列表:
    //求和,参数个数不确定
    public void sum(int... n){  //可变参数必须在参数列表的最后一个位置
        int sum = 0;
        for(int i:n){
            sum += i;
        }
        System.out.println("sum = "+sum);
    }

    //可变参数列表
    //搜索元素,范围不确定(随输入动态变化)
    public void searchValue(int target, int... n){
        boolean flag = false;
        for(int i : n){
            if(i == target){
                flag = true;
                break;
            }
        }//循环结束
        if(flag){
            System.out.println("找到了:" + target);
        }else{
            System.out.println("没找到:" + target);
        }
    }

    //测试
    public void tesDemo(){
        System.out.println("可变参数列表求和:");
        System.out.println("一个参数:");
        sum(1);
        System.out.println("两个参数:");
        sum(1,2);
        System.out.println("三个参数:");
        sum(1,2,3);

        System.out.println("\n可变参数列表查找某元素:");
        searchValue(4, 1,5,6,8,3,4,7);
        searchValue(0, 2,4,3,56,3,67,22,3);

        System.out.println("\n可变参数列表在数组中查找某元素:");
        int[] arr1 = {4,5,2,2,67,5,89,4,22,2};
        searchValue(5, arr1);
        searchValue(7, arr1);

    }

    public static void main(String[] args) {
        ArgsDemo argsDemo = new ArgsDemo();
        argsDemo.tesDemo();
    }
}

结果:

原文地址:https://www.cnblogs.com/CPU-Easy/p/12141590.html

时间: 2024-11-09 07:29:09

15 可变参数列表的相关文章

java可变参数列表的实现

参数就是我们调用一个方法时需要传入得数据,在方法中可能需要参数协助处理数据或者对参数进行解析处理以达到我们希望得到的数据和结果. 平常我们在写一个方法时,我们能确定需要传入什么样的参数以及参数的个数,这样我们在实现这个方法的时候在确定参数的时候都会有明确的目标.但是有时候会有这种特殊情况,我们并不知道我们将要传入几个参数,或者说我们并不确定外部会传入多少参数.在这种情况下,我们就要用到可变参数列表.下面是可变参数方法的实现方法. 1.传入数组对象或者集合,这里只对传入数组对象进行简单说明,集合的

Chapter5_初始化与清理_数组初始化与可变参数列表

一.数组初始化 数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.编译器是不允许指定数组的长度的,当使用语句int[] a时,拥有的只是一个符号名,即一个数组的引用,并不拥有这个数组的存储空间.要获取数组的存储空间,必须要写初始化表达式,最朴素的表达式类型如下 1 int[] a = {1,2,3}; 如果在编写程序时,不能确定数组的长度,可以使用如下方式,直接用new在数组里创建元素 1 int[] a = new int[3]; 当创建对象数组时,数组中的元素仅仅

C++可变参数列表处理宏va_list、va_start、va_end的使用

VA_LIST是在C语言中解决变参问题的一组宏他有这么几个成员: 1)va_list型变量: #ifdef     _M_ALPHA typedef    struct{ char* a0; /*pointertofirsthomedintegerargument*/ int offset; /*byteoffsetofnextparameter*/ }va_list; #else typedef    char* va_list;#endif 2)_INTSIZEOF宏,获取类型占用的空间长度

java基础基础总结----- 构造方法,可变参数列表

1 package com.mon11.day2; 2 /** 3 * 类说明 :构造方法,可变参数列表 4 * @author 作者 : chenyanlong 5 * @version 创建时间:2017年11月2日 6 */ 7 class Employee{ 8 private double salary=1800; 9 10 //构造方法 11 public Employee(){ 12 System.out.println("构造方法被调用"); 13 } 14 15 //

C语言函数的可变参数列表

可变参数列表可通过宏来实现,这些宏定义在stdarg.h头文件中,它是标准库的一部分.这个头文件声明了一个类型va_list和三个宏----va_start,va_arg,va_end.可以声明一个类型为va_list的变量,与这几个宏配合使用,访问参数的值.参数列表的可变部分位于一个或多个普通参数(命名参数)的后面(即参数列表中至少要有一个命名参数),它在函数原型中以一个省略号表示. 例如:定义一个函数average可以计算若干个整数的平均值: 1 #include <stdarg.h> 2

可变参数列表的实现

在学习C语言的过程中,大家是不是和我一样,认为printf是一个神一样的函数?他可以接受不同数目,不同类型的参数,他到底是怎么实现的呢? 让我们去看一下它的源代码: printf源代码: int printf(const char *fmt,...) { int res; va_list arg; va_start(arg,fmt); res = vprintf(fmt,arg); va_end(arg); return res; } 它采用的是可变参数列表,可变参数列表主要有以下两个缺点: 1

【C语言】求多个数中的最大值(可变参数列表)

求多个数中的最大值要求用可变参数列表: 代码如下: <span style="font-size:18px;">#include<stdio.h> #include<stdarg.h> int Max(int n,...) { int i=0; int max=0; va_list arg; va_start(arg,n); for(i=0;i<n;i++) { int val=va_arg(arg,int); if (val>max)

PHP函数可变参数列表的具体实现方法介绍

PHP函数可变参数列表可以通过_get_args().func_num_args().func_get_arg()这三个函数来实现.我们下面就对此做了详细的介绍. AD:2014WOT全球软件技术峰会北京站 课程视频发布 也许对于PHP初级程序员来说,对于PHP函数并不能完全熟练的掌握.我们今天为大家介绍的PHP函数可变参数列表的实现方法主要是利用func_get_args().func_num_args().func_get_arg()这三个系统函数来实现的,其中func_get_args()

C语言函数可变参数列表

C语言允许使用可变参数列表,我们常用的printf函数即为可变参数函数,C标准库提供了stdarg.h为我们提供了这方面支持:该头文件提供了一些类型和宏来支持可变参数列表,包括类型va_list,宏va_start.va_arg.va_end: 可变函数参数定义方法: #include <stdarg.h> void func(int count,...){ va_list ap; int ix, tmp; va_start(ap, a); for(ix=0;ix < count; ++