数组
概念:数组Array,标志是[ ]
作用:储存多个相同类型数据的集合
注意:数组下标是从0开始的
小技巧:下标的最大值是数组的长度减1
数组的创建
初始化
解释: 创建,并赋值;
静态初始化
// 2.静态初始化
int b[] =new int[]{1,2,3,15,17};
int c[]={1,14,18,19,26};
动态初始化
// 1.动态初始化(后面的5 代表数组的长度,5个数据)
int a[]= new int[5];
a[0]=1;
a[1]=2;
a[3]=4;
a[2]=3;
a[4]=5;
for (int i = 0; i < 5; i++) {
System.out.println(a[i]);
}
练习模拟计算器:
接收用户输入的两个int类型数值
按照用户输入1,2,3,4,分别执行相应的+-*/方法 将最后的结果输出至控制台。
public class Test08 {
public static void main(String[] args) {
System.out.println("请输入第一个数字");
int a = new Scanner(System.in).nextInt();
System.out.println("请输入第二个数字");
int b = new Scanner(System.in).nextInt();
System.out.println("请输入要执行的运算");
int c = new Scanner(System.in).nextInt();
if (c==1){
add(a,b);
}else if (c==2){
substruction(a,b);
}else if(c==3){
multiplication(a,b);
}else if(c==4){
division(a,b);
}
}
private static void division(int a, int b) {
int sum=a/b;
System.out.println("sum = " + sum);
}
private static void multiplication(int a, int b) {
int sum=a*b;
System.out.println("sum = " + sum);
}
private static void substruction(int a, int b) {
int sum = a-b;
System.out.println("sum = " + sum);
}
private static void add(int a, int b) {
int sum=a+b;
System.out.println("sum = " + sum);
}
}
练习:
求100以内所有奇数
将它们存到数组a中
运用数组的知识 算出 总和
提示 用到for循环 if判断
public class Test04 {
public static void main(String[] args) {
int a[]=new int[50]; //50
int index=0; //记录a数组下标
for (int i = 0; i <101 ; i++) {
if (i % 2 != 0){
a[index]=i;
index++;
}
}
System.out.println(Arrays.toString(a));
int sum=0; //记录求出的总和
for (int j = 0; j
值传递和引用传递
public class Test10 {
public static void main(String[] args) {
int b=100; //值 传递
boolean[] a = new boolean[5]; //引用传递(地址值)
method(b,a);
System.out.println("b = " + b); //100
System.out.println(Arrays.toString(a)); //[true, false, false, false, true]
}
private static void method(int b, boolean[] a) {
b=200;
a[0]=true;
a[4]=true;
// System.out.println(Arrays.toString(a));
// System.out.println("b = " + b);
}
}
split length length()
public class Test06 {
public static void main(String[] args) {
int[] a = new int[5];
String[] s = new String[5];
String s1="abcde";
for (int i = 0; i < a.length; i++) {
a[i]=i;
}
System.out.println(Arrays.toString(a));
System.out.println(a.length); //5
System.out.println(s.length); //5 length是属性
System.out.println(s1.length()); //5 length方法
//alt+shift +L split按照固定格式切割字符串
String[] split = s1.split("");
System.out.println(Arrays.toString(split));
}
}
返回值
package com.tedu;
//该类 测试方法的使用
public class Test07 {
public static void main(String[] args) {
int[] a = new int[]{1,2,3,4,5}; //(1+5)*5/2
int[] a1 = new int[]{1,2,3,4,6};
int[] a2 = new int[]{1,2,3,4,7};
int i = add(a);//15
System.out.println(i);
add(a1);
add(a2);
}
//这一段代码就叫做方法 void无返回值
public static int add(int a []){
int sum=0;
for (int i = 0; i
局部变量和成员变量
public class Test09 {
static boolean b; //成员变量 类里方法外面 不用初始化 也有默认值
static String c;
public static void main(String[] args) {
int a=10; //局部变量 方法里面 必须初始化
System.out.println("a = " + a); //10
System.out.println("b = " + b); //0
System.out.println("c = " + c);
}
//作用域(施法范围)
private static void method() {
int a=20;
System.out.println("a = " + a); //变量的使用(就近原则)
}
}
方法的重载
public class Test11 {
public static void main(String[] args) {
int a=10;
int b=20;
double c=30.0;
add(a,b);
// add(a,c);
}
private static void add(int a, int b) {
System.out.println("int+int");
}
private static void add(int a, double c) {
System.out.println("int+double");
}
private static void add(double a, double c) {
System.out.println("double+double");
}
}