java double for循环_Java基础 | Java 循环 & 数组 | 03

while循环

语法

while(条件){

...

}

打印1~100所有数字

package cn.edu360.javase24.day02;

/**

* 打印1~100

* @author cho

*

*/

public class WhileDemo {

public static void main(String[] args) {

int i=1;

while(i<=100){

System.out.println(i);

i++;

}

}

}

打印1~100所有奇数

package cn.edu360.javase24.day02;

/**

* 打印1~100所有的奇数

*

* @author cho

*

*/

public class WhileDemo2 {

public static void main(String[] args) {

int i = 1;

while (i <= 100) {

if ((i & 1) == 1)

System.out.println(i);

i++;

}

}

}

for循环

语法

for(...){

...

}

猜数游戏

package cn.edu360.javase24.day02;

import java.util.Scanner;

/**

* 猜数游戏

*

* @author cho

*

*/

public class GuessNum {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

// 内置一个数字

int ans = 34;

for (int i = 1; i <= 3; i++) {// 循环3次

System.out.printf("第%d次机会: \n", i);

int gn = Integer.parseInt(sc.nextLine().trim());

if (gn > ans) {

System.out.println("数字大了");

} else if (gn < ans) {

System.out.println("数字小了");

} else {

System.out.println("恭喜你!猜对了!");

return;

}

}

System.out.println("很遗憾,机会用完,游戏结束.");

}

}

7ca8115891bc10a255c23ddf8fbf9dfe.gif

案例: 求平均成绩

需求

需求:

用户可以输入5门课程的分数

我们的程序来计算5门课程的总分、平均分

实现步骤

package array;

import java.util.Scanner;

/**

* 数组

* 计算多门成绩的总分,平均分

* @author cho

*

*/

public class GetScore {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

// 定义一个长度为5的数组

double[] score = new double[5];

for(int i=0;i

System.out.println("请输入成绩: ");

score[i]=Integer.parseInt(sc.nextLine().trim());

}

// 计算总成绩

double sum=0;

for(int i=0;i<5;i++)

sum += score[i];

System.out.println("总成绩: "+sum);

System.out.printf("平均成绩: %.2f\n",sum/5);

}

}

涉及的知识点

如何定义数组?

double[] q = new double[N];

int[] q = new int[N];

数组中有个常用属性 length

for(int i=0;i

...

}

数组遍历

需求

将一个数组中的数据 从前到后打印

将一个数组中的数据 从后到前打印

实现步骤

package array;

/**

* 数组遍历

*

* @author cho

*

*/

public class ArrayTraverse {

public static void main(String[] args) {

int[] q = new int[10];

for (int i = 0; i < q.length; i++)

q[i] = i;

// 顺序打印

for (int i = 0; i < q.length; i++)

System.out.printf("%d ", q[i]);

System.out.println();

// 逆序打印

for (int i = q.length - 1; i >= 0; i--)

System.out.printf("%d ", q[i]);

}

}

涉及的知识点

逆序遍历

for(int i=q.length-1;i>=0;i--){

...

}

数组排序

需求

假如有一个班级的所有学生的总成绩保存在一个数组中[50,60,30,80,70]

需要写一个程序将这个数组中的数据按分数的大小排序[30,50,60,70,80]

实现步骤

package array;

public class BubbleSort {

static int[] q = { 50, 60, 30, 80, 70 };

static void bubble_sort(int l, int r) {

if (l >= r)

return;

int n = q.length;

for (int i = 0; i < n - 1; i++) {

boolean f = false;

for (int j = 0; j + 1 < n; j++) {

if (q[j] > q[j + 1]) {

int t = q[j];

q[j] = q[j + 1];

q[j + 1] = t;

f = true;

}

}

if (!f)

break;

}

}

public static void main(String[] args) {

bubble_sort(0, q.length);

for (int i = 0; i < q.length; i++)

System.out.printf("%d ", q[i]);

}

}

涉及的知识点

冒泡排序

这是一个基础排序...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用双重循环来实现Java数组的去重,其中外层循环遍历数组中的每一个元素,内层循环则从当前元素的下一个位置开始遍历,如果找到了与当前元素相同的元素,则将该元素删除。具体实现可以参考以下代码: ```java public static int[] removeDuplicates(int[] arr) { int len = arr.length; for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { if (arr[i] == arr[j]) { arr[j] = arr[len - 1]; // 将重复元素替换为数组末尾的元素 len--; // 数组长度减1 j--; // 内层循环变量j也要减1,以便检查替换后的新元素 } } } // 创建一个新数组,将去重后的元素复制到新数组中 int[] newArr = new int[len]; System.arraycopy(arr, 0, newArr, 0, len); return newArr; } ``` 这个方法可以处理任何类型的Java数组,包括int、double、String等。 ### 回答2: 要用for循环Java数组进行去重,可以按照以下步骤进行操作: 1. 创建一个新的空数组来存放去重后的元素。 2. 使用for循环遍历原数组中的每个元素。 3. 在循环中,使用一个flag变量来判断当前元素是否已经存在于新数组中。 4. 再次使用一个嵌套的for循环遍历新数组中的元素,与当前元素进行比较。 5. 如果找到相同的元素,则将flag设置为true,表示当前元素重复。 6. 如果在内部循环结束后,flag仍然为false,则表示当前元素是唯一的,可以将其添加到新数组中。 7. 最后,将新数组返回作为去重后的结果。 以下是一个简单的示例代码: ```java public class ArrayDuplicateRemoval { public static void main(String[] args) { int[] arr = {1, 2, 3, 2, 4, 3, 5}; int[] newArr = removeDuplicates(arr); System.out.println("去重后的数组为:"); for (int i = 0; i < newArr.length; i++) { System.out.print(newArr[i] + " "); } } public static int[] removeDuplicates(int[] arr) { int[] newArr = new int[arr.length]; int index = 0; for (int i = 0; i < arr.length; i++) { boolean flag = false; for (int j = 0; j < index; j++) { if (arr[i] == newArr[j]) { flag = true; break; } } if (!flag) { newArr[index++] = arr[i]; } } int[] result = new int[index]; System.arraycopy(newArr, 0, result, 0, index); return result; } } ``` 以上代码中,我们通过两次for循环来实现去重功能。时间复杂度为O(n^2),即需要遍历两次数组。最后将去重后的结果赋值给新的数组,并返回。 ### 回答3: java数组去重可以使用for循环来实现。可以使用两层for循环进行遍历,比较数组中的元素是否重复。首先,外层for循环遍历数组中的每一个元素,内层for循环则用来比较当前元素和后面的元素是否相等。如果相等,则使用数组的System.arraycopy()方法将后面的元素向前移动一位,从而实现去重。 以下是使用for循环实现数组去重的示例代码: ```java public static void removeDuplicates(int[] arr) { int len = arr.length; int[] result = new int[len]; int k = 0; for (int i = 0; i < len; i++) { boolean isDuplicate = false; // 检查当前元素是否在之前的元素中重复 for (int j = 0; j < i; j++) { if (arr[i] == arr[j]) { isDuplicate = true; break; } } // 如果不重复,则将当前元素添加到结果数组中 if (!isDuplicate) { result[k++] = arr[i]; } } // 输出去重后的结果数组 for (int i = 0; i < k; i++) { System.out.print(result[i] + " "); } } public static void main(String[] args) { int[] arr = {1, 3, 2, 2, 1, 5, 6, 4, 5}; removeDuplicates(arr); } ``` 以上代码中,首先定义了一个长度和原始数组相同的结果数组result,用来存放去重后的元素。然后使用外层for循环遍历数组中的每一个元素,内层for循环用来比较当前元素和之前的元素是否有重复。如果没有重复,则将当前元素添加到结果数组中。最后,使用for循环输出去重后的结果数组。 执行以上代码,输出结果为:1 3 2 5 6 4

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值