总结+数组

1.算术运算符中 + 的用法

​ 加法运算:数值+数值 数值+字符

int a=10;
int b=5;
System.out.println(a+b);  //15  数值+数值-->加法运算

char c='c';
System.out.println(a+c);  //109  数值+字符-->加法运算  char在参与运算时,上升为int型 'c'-->99

​ 字符串连接:字符串+字符串 字符串+数值

String d="a";
System.out.println(b+d);  //5a  字符串+数值-->连接
int i=1;
int j=2;
int k=3;
System.out.println(""+i+j+k);  //123  字符串(字符串可以为空)+数值-->连接

String s="l";
String sr="x";
System.out.println(s+sr);  //lx  字符串+字符串-->连接
2.条件运算符

(条件表达式) ?表达式1 :表达式2

注意:条件运算符和if-else语句用法很相似,不同的是条件运算符必须有返回值。在方法中使用时,需要定义一个和返回值数据类型相同的变量,用于接收返回值

int s=80;
String sr=(s>=60)?"及格" :"不及格";
System.out.println(sr);  //及格

int a=6;
int b=9;
int max=(a>b) ?a :b;  //返回最大值
System.out.println(max);  //9
3.charAt(int index)方法

返回指定索引位置的char值

Scanner scan=new Scanner(System.in);
char c=' ';
c=scan.next().charAt(0);  //识别用户所输入的字符并读入到程序中
4.break与continue用法

作用范围:break可以用于循环语句和switch-case语句中

​ continue只能用于循环语句中

且循环语句中,break在满足条件时,会终止其所在的整个循环,continue只是终止本次循环,还会进行下一次循环。

for(int i=0;i<6;i++){
            if(i==5){
                break; //终止整个循环
            }
System.out.print(i+" ");  //0 1 2 3 4
        }

for(int i=0;i<10;i++){
            if(i==5){
                continue; //终止本次循环
            }
System.out.print(i+" ");  //0 1 2 3 4 6 7 8 9 

在循环嵌套语句中,如果在内层循环中使用break,则在满足条件时,break会终止整个内层循环,外层循环仍会继续执行,若要终止外层循环,可在外层循环添加标签。

int i,j;
for(i=0;i<3;i++){
    for(j=0;j<5;j++){
        if(j==4){
            break;
        }
        System.out.print(j+" ");
    }
    System.out.println();
}  //0 1 2 3
     0 1 2 3
     0 1 2 3
         
int i,j;
        labal:for(i=0;i<3;i++){
            for(j=0;j<5;j++){
                if(j==4){
                    break labal;
                }
                System.out.print(j+" ");
            }
            System.out.println();
        }  //0 1 2 3

switch语句中,如果没有加break,符合条件的语句块,则从满足条件的对应的case语句开始执行,在执行完该语句后继续执行其后的语句块,直到switch结构结束。

5.方法

java中的方法相当于c语言中的函数,都是用于解决某一问题而编写的代码集合。如main方法是主方法,在c语言中main函数,都是用来启动程序的。

方法的定义:

​ 访问权限修饰符(public、private) 其他修饰符(static等) 返回值类型(int) 方法名 (参数类型 参数名){

​ 方法体}

关键字void表示方法无返回值,方法可以无返回值,也可以无参数

public static void hello(){
        System.out.println("你好");
    }  //hello方法无参数,无返回值
hello();  //使用 方法名();直接调用该方法,在其他类中调用时,要加上方法所在的类的类名进行调用,即 类名.方法名();
public static void main(String[] args){    
    String name="张三";  //声明两个与方法参数相同数据类型的变量,并赋初值
    int age=20;
    hello(name,age);  //在该类中直接调用hello方法
}

//创建一个无返回值,两个参数的hello方法
public static void hello(String name,int age){
        System.out.println("你好,"+name+" 年龄:"+age);
} 
//结果:你好,张三 年龄:20
public static void main(String[] args) {
        int a=5;
        int b=3;
        int m=max(a,b);  //定义一个int变量用于接受max方法的返回值
        System.out.println("最大值为:"+m);
}

//定义了一个两参数,有int型返回值的max方法
public static int max(int a,int b){
        int max=(a>b) ?a:b;
        return max;  //return返回max,终止方法
}
//结果:最大值为:5
数组
一维数组

定义:数组是一个存储相同类型数据的容器,可以存储多个值,所存储的数据在内存空间中的地址是连续的

声明:

​ int [] a,b; 声明int型数组a和数组b

​ int a[],b; 声明int型数组a和int型变量b(此种声明方式不建议)

创建:

1>.int[] a=new int[5]; 创建一个长度为5的数组a

​ int[] a表示声明了一个int型数组a,new int[5]表示创建了一个容量为5的连续内存空间

int [] x=new int[5];
System.out.println(x);  //输出数组在内存中的地址
System.out.println(Arrays.toString(x)); 
//toString()方法将数组转换为字符串输出  
//未对数组进行赋值时,int型数组中每个元素默认值为0,float型数组元素默认值0.0,String型默认为null
//结果:[0,0,0,0,0]

2>.int[] b=new int[]{1,2,3,4}; 创建一个长度为4的数组b,并为其赋值

int[] y={1,2,3,4,5};  //直接声明数组y并为其赋值
System.out.println(Arrays.toString(y));  //[1,2,3,4,5]  
String []sr=new String[]{"a","b","aa","bb"};
System.out.println(Arrays.toString(sr));  //[a,b,aa,bb]

访问:查看(遍历)数组中某一元素,对指定位置元素进行赋值

int[] a=new int[]{1,2,3,4,5};
        //        0 1 2 3 4
        System.out.println(a[0]);  //1
        a[0]=6;  //对数组中第一个元素进行赋值
        System.out.println(a[0]);  //6
        System.out.println(a.length); // 5 输出数组的长度

数组索引(也叫数组下标,数组标号):是对数组中每个元素进行编号,从0开始到数组长度-1(数组名.length-1),通过编号便于对数组元素进行遍历和赋值

注意:每个数组的索引都是从0开始,直到数组长度-1,即最大编号为数组长度-1;在使用时注意数组索引不能超出范围

遍历:

for循环

int[] a={1,2,3,4,5,6};
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
       } 

增强for循环:定义一个与数组数据类型相同的变量,遍历数组中的每一个元素并依次将其赋给变量,最后输出变量

for(数据类型 变量名:数组名){

​ System.out.println(变量); }

int[] a={2,0,0,2,6,6};
        for(int t:a) {
            System.out.print(t+" ");
        }  //2 0 0 2 6 6
二维数组

声明:

​ int[][] [] [] a;

​ int a[] []; 不建议使用此种方法声明数组,容易混淆

创建:

​ 1>.int [] [] a=new int[3] [4]; 创建一个二维数组a,[3]表示二维数组的长度为3,[4]表示二维数组中每个一维数组的长度为4

​ 2>.int [] [] b=new int[3] []; 创建一个长度为3的二维数组,但未确定二维数组中一维数组的长度。可以创建3个长度不同的一维数组将其赋给二维数组,这样数组b中每个一维数组的长度就是不同的。

int[][] a=new int[3][];  //a={null,null,null};
int[] b={1,2,3,4,5};
int[] c={1,2,3};
int[] d={1,2,3,4};
a[0]=b;
a[1]=c;
a[2]=d;
/*
a=1,2,3,4,5
  1,2,3
  1,2,3,4
*/

//声明数组并进行赋值
int[][] sz=new int[][]{{2,0,0,1,6,1,5},{2,0,0,2,6,6}};
int[][] sz={{2,0,0,1,6,1,5},{2,0,0,2,6,6}}; 

访问与遍历:

int[][] c=new int[3][4];
System.out.println(c[1][2]);  //0
c[1][2]=3;  //对二维数组中元素进行赋值
System.out.println(c[1][2]);  //3
for(int i=0;i<c.length;i++){  //遍历数组c
    for(int j=0;j<c[i].length;j++){
        System.out.print(c[i][j]+" ");
    }
    System.out.println();
}
/*c=0,0,0,0
    0,0,3,0
    0,0,0,0
*/
排序

冒泡排序

主要思想:将两个相邻的元素比较大小,将较大的元素向后移动,较小的元素向前移动

int[] a={5,4,3,2,1};
        for(int i=0;i<a.length-1;i++){  //控制总的趟数
            for(int j=0;j<a.length-1;j++){ 
                if(a[j]>a[j+1]){
                    int temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(a));  //[1, 2, 3, 4, 5]

选择排序

主要思想:从第一个元素开始依次和后面的每一个元素进行比较,将较小元素与当前元素进行交换

int [] a={3,2,1,5,4};
        for(int i=0;i<a.length-1;i++){  //循环到数组的倒数第二个元素
            for(int j=i+1;j<a.length;j++){  //比较到最后一个元素
                if(a[i]>a[j]){
                    int temp=a[i];
                    a[i]=a[j];
                    a[j]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(a));  //[1, 2, 3, 4, 5]

优化选择排序

从第一个元素开始依次和其后面的元素进行比较,若被比较元素小于当前元素,则记录该元素的下标,使用该元素与剩余元素继续比较,将最小元素与第一个元素进行交换,并依次用第二个元素与其后元素比较大小。

int [] a={3,2,1,5,4};
        for(int i=0;i<a.length-1;i++){
            int index=i;
            for(int j=i+1;j<a.length;j++){
                if(a[index]>a[j]){  //继续将较小的元素与之后的元素进行比较
                    index=j;  //记录较小元素的下标
                }
            }
            int temp=a[i];  
            a[i]=a[index];
            a[index]=temp;  //将一轮循环中最小元素与第i个元素进行交换
        }
        System.out.println(Arrays.toString(a));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用\[1\]中的代码展示了使用vector来创建一个二维数组,并使用resize函数来指定数组的大小。而引用\[2\]中的代码则展示了另一种创建二维数组的方法,直接在vector的构造函数中指定数组的大小。这两种方法都可以用来创建二维数组,只是在语法上稍有不同。 UEC++中的数组和vector的区别在于它们的实现方式和功能。数组是一种固定大小的数据结构,它在内存中是连续存储的,可以通过索引来访问元素。而vector是一种动态数组,它可以根据需要自动调整大小,并且可以在任意位置插入或删除元素。 另外,数组的大小在编译时就确定了,而vector的大小可以在运行时动态改变。这使得vector更加灵活,可以根据实际需求来动态管理内存。 此外,vector还提供了一些方便的成员函数,如push_back和pop_back,可以在数组的末尾插入和删除元素。而数组则没有这些功能,需要手动实现。 总结来说,数组适用于固定大小的数据集合,而vector适用于需要动态管理大小的数据集合。在UEC++中,使用数组还是vector取决于具体的需求和使用场景。 #### 引用[.reference_title] - *1* *2* [C++容器嵌套实现动态二维数组(Vector2D)](https://blog.csdn.net/diezhai9068/article/details/101201579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [UEC++ FString的那些事](https://blog.csdn.net/Ez_coder/article/details/118530317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值