Java 数组+循环升级篇
数组是一个变量,存储相同数据类型的一组数据(就是能存储很多数值的数据类型)
如果说声明一个变量就是在内存空间划出一块合适的空间,那么声明一个数组就是在内存空间划出一串连续的空间。
数组的基本要求
- 标识符:数组的名称,用于区分不同的数组
- 数组元素:数组中存放的数据
- 元素下标:从0开始
- 元素类型:数组的数据类型
数组操作的基本步骤
1)声明数组:告诉计算机数据类型是什么
数据类型[ ] 数组名; 如:int[ ] score1;
数据类型 数组名[ ]; 如:int score2[ ];
注意:声明数组时不能声明数组的长度
2) 分配空间:告诉计算机分配几个连续的空间
如:score=new int[30];
数据类型[ ] 数组名 = new 数据类型[大小];
3)赋值
边声明变赋值
Int [ ] score=new int[ ]{89,79,69}; 前面写个3后面附3个数值,冲突了,计算机不允许
Int[ ] score={89,69,79}
也可以使用控制台输入赋值
Scanner input =new Scanner(System.in);
for(int i=0; i<30; i++){
score[i]=input.nextInt();
}
常见应用:
/*
* 定义一个数组序列
* 循环输出数列的值
* 求数列中所有数值的和
* 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
*/
public class Test01 {
public static void main (String args[]){
int[] arr;
arr=new int[]{8,4,2,1,23,34,12};
int sum=0;
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
sum=sum+arr[i];
}
System.out.println("该数组数列的总和为:"+sum); Scanner input=new Scanner(System.in);
System.out.println("请输入一个数字:"); int j=input.nextInt();
int k=0;
for(int i=0;i<arr.length;i++){
if(j==arr[i]){
k=1;
break;
}
}
if(k==1){
System.out.println("包含");
}else {
System.out.println("不包含");
}
}
}
/* 类说明
* 录入5位学员的成绩,进行升序后输出
*/
public class Test02 { public static void main(String[] args) { int [] score=new int[5];
int k=0;
Scanner inputScanner=new Scanner(System.in);
System.out.println("请输入成绩:");
//for循环将数值存入数组
for(int i=0;i<score.length;i++){
score[i]=inputScanner.nextInt();
}
//for循环输出数组序列
System.out.println("排序之前:");
for(int j=0;j<score.length;j++){
System.out.print(score[j]+" ");
}
System.out.println(" ");
//进行排序操作
//使用java.util.Arrays类,调用Arrays类的sort()方法:对数组进行升序 Arrays.sort(数组名)
Arrays.sort(score);
System.out.println("排序之后:");
for(int i=0;i<score.length;i++){
System.out.print(score[i]+" ");
}
}
}
若要输出数组的最大值,利用以上排序后,增加一句:System.out.println("最大值:"+score[score.length-1]);
冒泡排序:重复地走访过要排序的数列,一次比较相邻两个元素,如果他们的顺序错误就把他们交换过来
public class Test06 {
public static void main(String[] args){
int arr[]=new int[]{5,9,1,6,8};
int k=0;
for (int i = 0; i < arr.length-1; i++) { //使用双循环
for (int j = 0; j <arr.length-i-1; j++) {
if(arr[j]<arr[j+1]){ //此案例中为降序排列,若要为升序,则修改arr[j]>arr[j+1]
k=arr[j];
arr[j]=arr[j+1];
arr[j+1]=k;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
嵌套循环
一个外循环里面嵌套内循环,外循环执行一次,内循环遍历一遍
public class Test04 {
public static void main(String[] args) {
/*
* 外层控制行数
* 内层控制星号的个数
*/
for (int i = 1; i <=5; i++) {
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
如:打印直角三角形
public class Test04 {
public static void main(String[] args) {
/*
* 外层控制行数
* 内层控制星号的个数
*/
for (int i = 5; i >=1; i--) {
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
public class Test04 {
public static void main(String[] args) { for (int i =1; i <=5; i++) {
for(int j=5; j>=i; j--){
System.out.print(" ");
}
for(int j=1;j<=i*2-1;j++){
System.out.print("*");
}
System.out.println();
}
}
}
打印九九乘法表
public class Test05 { public static void main(String[] args) {
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j+"x"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
public class Test012 {
public static void main (String args[]){
/* 已知数列:0,1,1,2,3,5,8,13,21... 循环输出该数列---斐波那契数列
*分析思路:前两个数值固定,第三个数值等于它前两个数值之和,第四个数值等于它前两个数值之和...
*
**/
int[] nums=new int[15];
nums[0]=0;
nums[1]=1; for(int i=2;i<nums.length;i++){
nums[i]=nums[i-1]+nums[i-2];
}
//输出数组从新写一个for循环
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+",");
}
//数组平均值
int sum =0;
double avg=0.00;
for (int i = 0; i < nums.length; i++) {
sum=sum+nums[i];
}
avg=sum/15;
System.out.println("平均值:"+avg);
}
}
Java 数组+循环升级篇的更多相关文章
- java 在循环中删除数组元素
在写代码中经常会遇到需要在数组循环中删除数组元素的情况,但删除会导致数组长度变化. package com.fortunedr.thirdReport; import java.util.ArrayL ...
- java - day003 - 循环嵌套, 循环命名, while, 数组
1.循环嵌套 break 中断循环或switch(跳出循环).中断后继续往下执行 continue (跳到循环的下一轮继续执行) return (结束方法) 2.循环命名 内层循环控制外层循环.需要给 ...
- Java数组实现循环队列的两种方法
用java实现循环队列的方法: 1.添加一个属性size用来记录眼下的元素个数. 目的是当head=rear的时候.通过size=0还是size=数组长度.来区分队列为空,或者队列已满. 2.数组中仅 ...
- Java如何循环数组并使用Split
场景: 当写方法时遇到1个参数有3个值, 该参数类型为数组. 例如: aaa|bbb|ccc . 而且需要循环打印,这个时候我们就需要用数组循环输出的方法. 一:feature 示例 Wh ...
- java _循环练习和数组练习
练习 1.输出所有的水仙花数,所谓水仙花数是指一个数3位数,其每位数字立方和等于其本身,如153 = 1*1*1 + 3*3*3 + 5*5*5(很经典的题目) 分析: 通过观察发现,本题目要实现打印 ...
- Java数组使用以及foreach循环
Java数组使用以及foreach循环 二话不说,先甩一个简单的程序: final int NUM= 10; int[] arrays = new int[NUM]; System.out.print ...
- Java核心基础第4篇-Java数组的常规操作
Java数组 一.数组简介 数组是多个相同类型数据的组合,实现对这些数据的统一管理 数组属引用类型,数组型数据是对象(Object) 数组中的元素可以是任何数据类型,包括基本类型和引用类型 数组类型是 ...
- java学习笔记(基础篇)—java数组
一:什么是数组,什么时候使用数组? 数组是用来保存一组数据类型相同的元素的有序集合,数组中的每个数据称为元素.有序集合可以按照顺序或者下标取数组中的元素. 在Java中,数组也是Java对象.数组中的 ...
- Java实现 LeetCode 457 环形数组循环
457. 环形数组循环 给定一个含有正整数和负整数的环形数组 nums. 如果某个索引中的数 k 为正数,则向前移动 k 个索引.相反,如果是负数 (-k),则向后移动 k 个索引.因为数组是环形的, ...
随机推荐
- smarTTY总是失败连接的原因
首先用命令 IP addr 查看是否ip 地址错误 事实证明就是因为我的ip地址发生了变化所以导致连接不上, 不过有一次,我将电脑重启 也是连接上了的.
- LODOP设置判断后执行哪个
LODOP的语句是普通的语句,可以通过JS判断确定要执行哪个,或通过循环循环执行一些语句.如果需要执行某些打印项在哪些条件下不打印,不需要通过代码删除打印项,类似LODOP.SET_PRINT_STY ...
- 关于Binder,作为应用开发者你需要知道的全部
作者:rushjs https://www.jianshu.com/p/062a6e4f5cbe github 地址: https://github.com/rushgit/zhongwenjun.g ...
- kubernetes增加污点,达到pod是否能在做节点运行
master node参与工作负载 (只在主节点执行)使用kubeadm初始化的集群,出于安全考虑Pod不会被调度到Master Node上,也就是说Master Node不参与工作负载. 这里搭建的 ...
- 51Nod 1381 硬币游戏
参考自:https://www.cnblogs.com/ECJTUACM-873284962/p/6445369.html 1381 硬币游戏 基准时间限制:1 秒 空间限制:131072 KB 分值 ...
- HUST 1555 数学作业
参考自:https://www.cnblogs.com/ECJTUACM-873284962/p/6394892.html 1555 - A Math Homework 时间限制:1秒 内存限制:12 ...
- 洛谷P5020货币系统
题目 这个题打眼看上去可能是一个数论或者DP,其实我们可以简化一下题意,即 给定一个集合\(\alpha\),找到几个数使得这几个数可以拼凑起来这个集合里所有的数,且需要使这些数的个数最小. 这样这个 ...
- 洛谷P1144最短路计数题解
最短路计数 此题还是寻找从1到i点总共有几个最短路且每条边的边长为1,对于这种寻找最短路的个数,我们可以反向搜索,即先用\(SPFA\)预处理出所有点的最短路,然后我们反向记忆化搜索,可以用\(sum ...
- 【XSY2701】异或图 线性基 容斥原理
题目描述 定义两个图\(G_1\)与\(G_2\)的异或图为一个图\(G\),其中图\(G\)的每条边在\(G_1\)与\(G_2\)中出现次数和为\(1\). 给你\(m\)个图,问你这\(m\)个 ...
- 【BZOJ4944】【NOI2017】泳池 概率DP 常系数线性递推 特征多项式 多项式取模
题目大意 有一个\(1001\times n\)的的网格,每个格子有\(q\)的概率是安全的,\(1-q\)的概率是危险的. 定义一个矩形是合法的当且仅当: 这个矩形中每个格子都是安全的 必须紧贴网格 ...