Java学习关于循环和数组练习题整理

循环例子:

while循环和do…while循环

whlie(条件语句) {
	循环体
}//先进行条件语句的判断,再进行循环体
do {
	循环体
}whlie (条件语句)//先执行一次循环后再进行条件语句的判断

break语句

break语句:结束全部循环,具体应用如下:

//1+2+3+...+n<1000,求n
//此题可以利用break语句在和大于1000时结束循环,输出n的值
public static void deal() {
  int sum = 0;
  int i = 1;
  for (; ; i++) {
   sum = sum + i;
   if (sum > 1000) {
    break;//当和大于1000时,利用break语句跳出循环
   }
  }
  System.out.println(i);
 }

相关实例练习题:

1.输出100到1000的水仙花数:

public class LoopTest{
 public static void main(String[] args){
  int bai = 0;
  int shi = 0;
  int ge = 0;
  for(int i = 100; i < 1000; i++){
   bai = i/100;
   shi = i/10%10;
   ge = i%10;
   if(bai*bai*bai+shi*shi*shi+ge*ge*ge == i ){
    System.out.println(i);
   }
  }
 }
}

2.打印所有字母:

public class LoopTest{
 public static void main(String[] args){
  char lower = 'a';
  char upper = 'A';
  for(int i = 0 ; i < 26 ; i++){
   System.out.println(lower+" "+upper);
   lower++;
   upper++;
  }
 }
}

3.打印99乘法表:

public class LoopTest{
 public static void main(String[] args){
  for(int i = 1; i <=9 ; i++){
   for(int j = 1 ; j<=i ; j++){
    System.out.print(j+"*"+i+"="+j*i+" ");
   }
   System.out.println();
  }
 }
}

4.按格式遍历数组:

public class ArrayTest{
 public static void main(String[] args){
  int[] arr1 = {4,6,7,1};
  int[] arr2 = {1,2,3,9,10};
  printArray(arr1);
  printArray(arr2);
 }
 public static void printArray(int[] arr){
  System.out.print("[");
  for(int i = 0 ; i <arr.length ; i++){
   if( i == arr.length-1){
    System.out.println(arr[i]+"]");
   }else{
    System.out.print(arr[i]+",");
   }
  }
 }
}

5.数组元素逆序(注意:不是反向遍历):

public class ArrayTest{
 public static void main(String[] args){
  int[] arr = {1,2,3,4,7,8,9};
  reverse(arr);
  printArray(arr);
 }
 public static void reverse(int[] arr){
  for(int min=0,max = arr.length-1; min<max ; min++,max--){
   int temp = arr[min];
   arr[min] = arr[max];
   arr[max] = temp;
  }
 }
  public static void printArray(int[] arr){
  System.out.print("[");
  for(int i = 0 ; i <arr.length ; i++){
   if( i == arr.length-1){
    System.out.println(arr[i]+"]");
   }else{
    System.out.print(arr[i]+",");
   }
  }
 }
}

6.选择排序:

public class ArrayTest{
 public static void main(String[] args){
  int[] arr = {3,1,5,7,8,9,2};
  selectSort(arr);
  printArray(arr);
 }
 public static void selectSort(int[] arr){
  for(int i = 0; i < arr.length-1; i++){
   for(int j = i+1; j<arr.length; j++){
    if(arr[i]>arr[j]){
     int temp = arr[i];
     arr[i] = arr[j];
     arr[j] = temp;
    }
   }
  }
 }
 public static void printArray(int[] arr){
  System.out.print("[");
  for(int i = 0 ; i <arr.length ; i++){
   if( i == arr.length-1){
    System.out.println(arr[i]+"]");
   }else{
    System.out.print(arr[i]+",");
   }
  }
 }
}

7.冒泡排序:

public class ArrayTest{
 public static void main(String[] args){
  int[] arr = {3,1,5,7,8,9,2};
  bubbleSort(arr);
  printArray(arr);
 }
 public static void bubbleSort(int[] arr){
  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]){
     int temp = arr[j];
     arr[j] = arr[j+1];
     arr[j+1] = temp;
    }
   }
  }
 }
 public static void printArray(int[] arr){
  System.out.print("[");
  for(int i = 0 ; i <arr.length ; i++){
   if( i == arr.length-1){
    System.out.println(arr[i]+"]");
   }else{
    System.out.print(arr[i]+",");
   }
  }
 }
}

8.折半查找法(注意必须是有序的数组):

public class ArrayTest{
 public static void main(String[] args){
  int[] arr = {1,3,5,7,9,11};
  int index = binarySearch(arr, 7);
  System.out.println(index);
 }
 public static int binarySearch(int[] arr,int key){
  int min = 0;
  int max = arr.length-1;
  int mid = 0;
  while( min<=max ){
   mid = (min+max)/2;
   if(key>arr[mid]){
    min = mid+1;
   }else if(key<arr[mid]){
    max = mid-1;
   }else{
    return mid;
   }
  }
  return -1;
 }
}
(0)

相关推荐

  • Java中增强for循环在一维数组和二维数组中的使用方法

    一维数组: int[] a={1,2,3}; for(int i:a) { System.out.print(i+" "); } 输出:1 2 3 二维数组: import java.util.Scanner; public class tet { public static void main(String[] args) { //int[][] b={{1,2,3},{4,5,6}};行 int[][] a=new int[5][];//必须明确行数 for(int i=0;i&l

  • java不用循环语句打印数组元素的实例

    实例如下: import java.util.Arrays; public class Test { public static void main(String[] args) { int[] array = {0,1,4,7,2,5,8,3,6,9}; System.out.println(Arrays.toString(array)); } } 以上这篇java不用循环语句打印数组元素的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Java用数组实现循环队列的示例

    复习了下数据结构,用Java的数组实现一下循环队列. 队列的类 //循环队列 class CirQueue{ private int QueueSize; private int front; private int rear; private int[] queueList ; public CirQueue(int QueueSize){ this.QueueSize = QueueSize; queueList = new int[QueueSize]; front = 0; rear =

  • Java中遍历数组使用foreach循环还是for循环?

    从JDK1.5起,增加了新功能Foreach,它是for循环遍历数据的一种简写形式,使用的关键字依然是for,但参数格式不同.其详细用法为: for(Type e:collection){ //对变量e的使用} 参数说明: e:其类型Type是集合或数组中元素值的类型,该参数是集合或数组collection中的一个元素. collections: 要遍历的集合或数组,也可以是迭代器. 在循环体中使用参数e,该参数是foreach从集合或数组以及迭代器中取得的元素值,元素值是从头到尾进行遍历的.

  • java数据结构与算法之双向循环队列的数组实现方法

    本文实例讲述了java数据结构与算法之双向循环队列的数组实现方法.分享给大家供大家参考,具体如下: 需要说明的是此算法我并没有测试过,这里给出的相当于伪代码的算法思想,所以只能用来作为参考! package source; public class Deque { private int maxSize; private int left; private int right; private int nItems; private long[] myDeque; //constructor p

  • 基于Java数组实现循环队列的两种方法小结

    用java实现循环队列的方法: 1.添加一个属性size用来记录眼下的元素个数. 目的是当head=rear的时候.通过size=0还是size=数组长度.来区分队列为空,或者队列已满. 2.数组中仅仅存储数组大小-1个元素,保证rear转一圈之后不会和head相等.也就是队列满的时候.rear+1=head,中间刚好空一个元素. 当rear=head的时候.一定是队列空了. 队列(Queue)两端同意操作的类型不一样: 能够进行删除的一端称为队头,这样的操作也叫出队dequeue: 能够进行插

  • java高效打印一个二维数组的实例(不用递归,不用两个for循环)

    打印1个元素,不让循环变量i++,走出思维定式(执行一次循环体,就i++).public class OneForPrint2DArr { public static void main(String[] args) throws Exception { int[][] a = { { 1, 2, 3 }, { 4, 5} }; for (int i = 0, j = 0; i < a.length;) { System.out.println(a[i][j]); j++; if (j >=

  • Java学习关于循环和数组练习题整理

    循环例子: while循环和do-while循环 whlie(条件语句) { 循环体 }//先进行条件语句的判断,再进行循环体 do { 循环体 }whlie (条件语句)//先执行一次循环后再进行条件语句的判断 break语句 break语句:结束全部循环,具体应用如下: //1+2+3+...+n<1000,求n //此题可以利用break语句在和大于1000时结束循环,输出n的值 public static void deal() { int sum = 0; int i = 1; for

  • Java中的循环笔记整理(必看篇)

    一.循环的类型: 1.for循环 class For{ public static void main(String[] args) { System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("Hello World!"); Sy

  • Java for循环几种写法整理

    Java for循环几种写法整理 概要: J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象.本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题. 在Java程序中,要"逐一处理"――或者说,"遍历"――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为fo

  • java学习之一维数组中重复元素的去除

    目录 一.基本思路 二.步骤 1.设置判断数组Arr[ ] 2.继承数组newArr[ ]获取不重复元素 总结 一.基本思路 首先,假设一个一维数组arr[ ]={ 4, 3, 35, 3, 2, 4, 6, 3},其中有三个重复元素 3,4,3.要如何剔除呢,由于还没有涉猎到一些经典的调用,所以我选择了用新的数组newArr[ ]去继承原来数组中的不重复的元素,另外还需要一个判断数组Arr[ ],来判断arr[ ]中哪几个元素是重复的,才好去除掉. 二.步骤 1.设置判断数组Arr[ ] 代码

  • JavaScript学习笔记之ES6数组方法

    ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了).上一次标准的制订还是2009年出台的ES5.目前ES6的标准化工作正在进行中,预计会在14年12月份放出正式敲定的版本.但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中. ES6给数组添加了一些新特性,而这些新特性到目前为止完全可以运用到自己的业务层.在这一节中将总结有关于ES6给数组提供一些新特性的使用方法. ES6提供

  • JavaScript学习笔记之取数组中最大值和最小值

    推荐阅读:JavaScript学习笔记之数组的增.删.改.查 JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组随机排序 在实际业务中有的时候要取出数组中的最大值或最小值.但在数组中并没有提供arr.max()和arr.min()这样的方法.那么是不是可以通过别的方式实现类似这样的方法呢?那么今天我们就来整理取出数组中最大值和最小值的一些方法. 取数组中最大值 可以先把思路理一下: 将数组中第一个元素赋值给一个变量,并且把这个变量作为最大值: 开始遍历数组,从第二个元

  • java实现二分法查找出数组重复数字

    本文实例为大家分享了java实现二分法查找出数组重复数字的具体代码,供大家参考,具体内容如下 package offer; /** * 二分查找的思想来找到数组中重复的数字,时间复杂度在o(nlogn)-o(n^2) */ public class FindDuplicate3 { public static void main(String[] args) { int numbers[] = {0,1,2,3,4,4,6,7};//数组中的数 大小从0 到 numbers.length-1 f

  • java 字符串转化为字符数组的3种实现案例

    你可以选择最简单的方法解题,但是你需要掌握所有的方法当做知识储备第一种最简单,但是其适用前提是输入: 4(个数) 然后是 1 2 3 4 (也就是输入数字),放入kk数组之中,输出1 2 3 4 import java.util.*; public class Main { public static void main(String args[]) { Scanner cn=new Scanner(System.in); int count=cn.nextInt(); int []kk=new

  • Java基础之不简单的数组

    目录 引言 数组也是一种类型 数组特点 数组的声明和初始化 1.静态初始化 2.动态初始化 数组和内存 总结 引言 相信有过编程基础的小伙伴都知道数组这个数据结构,它应该也是我们第一个接触的数据结构,学过C或者C++的应该知道数组和指针紧密相关,那么在java里没有了指针,java里的数组又有哪些不同的特点呢?下面就来介绍一下java里的数组: 数组也是一种类型 数组里面的数组元素都是唯一的,这个大家应该都知道,但是因为java是面向对象语言,类与类之间又有继承关系(C++中同样拥有),所以有时

  • Java 在游戏中探索数组二维数组

    目录 什么是数组 举例(装备栏) 声明数组 int类型 String类型 数组操作 遍历数组 二维数组 声明二维数组 这里是JAVA成仙路,关注我学习JAVA不迷路 什么是数组 数组(Array)是有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量/12713827).用于区分数组的各个元素的数字编号称为下标.数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式.

随机推荐