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;
 }
}
时间: 2019-07-16

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用数组实现循环队列的示例

复习了下数据结构,用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不用循环语句打印数组元素的实例

实例如下: 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中遍历数组使用foreach循环还是for循环?

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

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

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

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高效打印一个二维数组的实例(不用递归,不用两个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编程实现的二维数组转置功能示例

本文实例讲述了Java编程实现的二维数组转置功能.分享给大家供大家参考,具体如下: /** * 实现二维数组的转置 * @author HAN * */ public class transposition_Arrays2D_ch6_4 { final static double PI=3.1415; public static void main(String[] args) { /*StaticTest st1=new StaticTest(); StaticTest st2=new Sta

java 遍历Map及Map转化为二维数组的实例

java 遍历Map及Map转化为二维数组的实例 实例代码: import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Test { public static void main(String[] args) { int a = 0, b = 0, c = 0; // 第一种:通过Map.keySet()遍历Map及将Map转化为二维数组 Map<String, String>

python+numpy按行求一个二维数组的最大值方法

问题描述: 给定一个二维数组,求每一行的最大值 返回一个列向量 如: 给定数组[1,2,3:4,5,3] 返回[3:5] import numpy as np x = np.array([[1,2,3],[4,5,3]]) # 先求每行最大值得下标 index_max = np.argmax(x, axis=1)# 其中,axis=1表示按行计算 print(index_max.shape) max = x[range(x.shape[0]), index_max] print(max) # 注

angularJS利用ng-repeat遍历二维数组的实例代码

最近在做报表的项目,有一种情况是后台返回给我的是一个二维数组,在前台将数据放入到表格中,因为我们用的是AngularJS的前台框架,所以利用ng-repeat来实现: 首先在js中: 复制代码 代码如下: $scope.Week = [[ '云南省 ', 'a', 's', 'd', 'e', 'w','t' ],[ '陕西省 ', 'l', 'p', 'o', 'i', 'u','y' ],[ '青海省 ', 1, 2, 4, 4, 5, 6 ] ]; 在HTML中: 样式一: <ul ng-

PHP二维数组去重实例分析

本文实例分析了PHP二维数组去重的方法.分享给大家供大家参考,具体如下: 都知道一维数组去重用系统函数 array_unique($arr) 然后今天我用到二维数组了,也想去重,百度一大堆,都是将二维转一维 然后使用array_unique($arr) 看得我很恼火,所以决定自己写一个.比他的简单好懂,记录下来,以备后用 header('content-type:text/html;charset=utf8'); $arr = array( array('id'=>1,'psid'=>'P10

javascript二维数组转置实例

本文实例讲述了javascript二维数组转置的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <script language="javascript" type="text/javascript"> var arr1 = [[30,-1,90],[70,100,-40],[39,29,6],[39,92,9]]; var arr2 = []; //确定新数组有多少行 for(var i=0;i<arr1[0].length

php冒泡排序、快速排序、快速查找、二维数组去重实例分享

一.冒泡排序 复制代码 代码如下: //冒泡排序function bubble_sort($array){    $count=count($array);    if($count <= 0){        return false;    }    for($i=0;$i<$count;$i++){        for($j=0;$j<$count-$i-1;$j++){            if( $array[$j] > $array[$j+1] ){        

Python qrcode 生成一个二维码的实例详解

借助第三方库qrcode实现. 二维码图片生成借助pillow qrcode的安装 在命令行中输入 pip install qrcode[pil] 用法: 1.在命令行中输入 qr "Some text" > test.png 2.在python中输入 import qrcode img = qrcode.make('Some data here') 高级用法: 使用QRCode类 import qrcode qr = qrcode.QRCode( version=1, erro

Java二维数组实战案例

本文实例讲述了Java二维数组.分享给大家供大家参考,具体如下: 一 点睛 1 每行的元素个数不同的二维数组 Java定义二维数组更加灵活,允许二维数组中的每行的元素个数不相等,这点与其他编程语言不同,例如下面这个二维数组,其中第1行有4个元素,第2行有3个元素,第3行有5个元素 int [][] num={ {1,2,3,4}, {1,2,3}, {1,2,3,4,5} }; 下面的语句是声明整型的二维数组num并分配空间,其中第1行4个元素,第2行3个元素,第3行5个元素 int [][]