数组初始化及其遍历

import java.util.Scanner;

class Initial{

private Scanner sc=new Scanner(System.in);

//整形数组的处理方法
public void initArr(int[] arr){
arr=new int[arr.length];

//为数组元素赋值
for(int x=0;x<arr.length;x++){
System.out.println("请输入第"+(x+1)+"个元素:");
arr[x]=sc.nextInt();
}

//显示所有元素
System.out.print("所有元素:");
for(int x=0;x<arr.length;x++){
if(x==arr.length-1){
System.out.println(arr[x]);
}else{
System.out.print(arr[x]+", ");
}
}
}

//双精度型数组处理方法
public void initArr(double[] arr){
arr=new double[arr.length];

//为数组元素赋值
for(int x=0;x<arr.length;x++){
System.out.println("请输入第"+(x+1)+"个元素:");
arr[x]=sc.nextDouble();
}

//显示所有元素
System.out.print("所有元素:");
for(int x=0;x<arr.length;x++){
if(x==arr.length-1){
System.out.println(arr[x]);
}else{
System.out.print(arr[x]+", ");
}
}
}

//字符型数组处理方法
public void initArr(String[] arr){
arr=new String[arr.length];

//为数组元素赋值
for(int x=0;x<arr.length;x++){
System.out.println("请输入第"+(x+1)+"个元素:");
arr[x]=sc.next();
}

//显示所有元素
System.out.print("所有元素:");
for(int x=0;x<arr.length;x++){
if(x==arr.length-1){
System.out.println(arr[x]);
}else{
System.out.print(arr[x]+", ");
}
}
}
}


public class InitialTest{
public static void main(String[] args){

//创建键盘录入对象
Scanner sc=new Scanner(System.in);

//接收数据
System.out.print("请输入数组元素个数:");
int num=sc.nextInt();

//定义数组
int[] arrInt=new int[num];
double[] arrDouble=new double[num];
String[] arrString=new String[num];
Initial it=new Initial();
System.out.println();

//菜单选项
System.out.println("请输入相应数组元素类型前的数字:1.整形 2.双精度型 3.字符串型");
System.out.println();
int d=sc.nextInt();
switch(d){
case 1:
it.initArr(arrInt);break;
case 2:
it.initArr(arrDouble);break;
case 3:
it.initArr(arrString);break;
default :
System.out.println("你输入的数字有误");
}
}
}
### 自定义数组初始化方法 在编程中,自定义数组初始化通常指的是为数组中的每个元素分配特定的值。以下是关于如何实现这一目标的具体说明。 #### 1. 使用数组初始化器进行简单初始化 对于基本类型的数组(如 `int` 或 `string`),可以直接通过数组初始化器完成初始化操作。这种方式适用于一维数组以及多维数组的情况[^1]: ```csharp // 一维数组初始化示例 int[] numbers = { 1, 2, 3, 4, 5 }; // 字符串数组初始化示例 string[] names = { "Alice", "Bob", "Charlie" }; ``` 上述代码展示了如何利用数组初始化器快速创建并填充数组的内容。 --- #### 2. 处理复杂对象的数组初始化 当涉及的是自定义类的对象数组时,则需要注意避免未初始化导致的“空指针异常”。此时需显式地对数组中的每一项进行实例化处理[^2]: 假设有一个名为 `Person` 的类: ```csharp public class Person { public string Name; public int Age; public Person(string name, int age) { this.Name = name; this.Age = age; } } ``` 随后可以通过以下方式对其进行初始化: ```csharp Person[] people = new Person[3]; people[0] = new Person("John Doe", 30); people[1] = new Person("Jane Smith", 25); people[2] = new Person("Emily Davis", 22); ``` 或者更简洁的方式使用集合初始化器(如果支持): ```csharp var peopleList = new List<Person>(){ new Person("John Doe", 30), new Person("Jane Smith", 25), new Person("Emily Davis", 22) }; ``` 注意这里我们并未直接采用数组形式而是转用了列表(List),因为后者提供了更为灵活的操作接口。 --- #### 3. 初始化二维或多维数组 针对更高维度的数据结构,同样存在相应的初始化机制[^3]^: ```csharp // 定义并初始化一个二维整型数组 int[,] matrix = { { 1, 2 }, { 3, 4 }, { 5, 6 } }; // 遍历打印该矩阵内容 for (int i = 0; i < matrix.GetLength(0); ++i){ for(int j=0;j<matrix.GetLength(1);++j){ Console.Write(matrix[i,j]+" "); } Console.WriteLine(); } ``` 此段程序片段清晰展现了二维数组及其成员访问逻辑。 --- #### 4. 利用宏或其他技巧批量赋初值(C语言视角下的补充)[^4]: 虽然题目主要围绕C#展开讨论,但提及到其他语言特性也可能带来启发意义。例如,在某些场景下借助预处理器指令(`#define`)能够简化重复性的初始化过程: ```c #define SIZE 5 int arr[SIZE] = {[0 ... (SIZE-1)] = -1}; // 将所有元素设置为默认值(-1) printf("%d\n",arr[3]); // 输出应显示-1 ``` 尽管这种写法并非标准C/C++的一部分,但在GCC编译环境下它是被接受和支持的有效语法之一。 --- #### 总结 综上所述,无论是基础数据类型还是复合数据类型,都可以找到合适的手段来进行高效的数组初始化工作。具体选择取决于实际需求以及所使用的开发环境等因素影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值