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

 更新时间:2019年07月18日 16:11:51   作者:一清  
在本篇文章里小编给各位整理了关于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;
 }
}

相关文章

  • Deep Module深模块之软件设计

    Deep Module深模块之软件设计

    这篇文章主要介绍了软件设计之Deep Module深模块详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Java中实体与Map之间的相互转换代码示例

    Java中实体与Map之间的相互转换代码示例

    生活中经常用到map数据与实体类的转换,下面这篇文章主要给大家介绍了关于Java中实体与Map之间相互转换的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • fastjson转换对象实体@JsonProperty不生效问题及解决

    fastjson转换对象实体@JsonProperty不生效问题及解决

    这篇文章主要介绍了fastjson转换对象实体@JsonProperty不生效问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 使用IDEA创建Servlet程序的详细步骤

    使用IDEA创建Servlet程序的详细步骤

    在学习servlet过程中,参考的教程是用eclipse完成的,而我在练习的过程中是使用IDEA的,在创建servlet程序时遇到了挺多困难,在此记录一下如何用IDEA完整创建一个servlet程序,感兴趣的朋友一起看看吧
    2024-08-08
  • 浅析如何在SpringBoot中实现数据脱敏

    浅析如何在SpringBoot中实现数据脱敏

    脱敏是指在不改变原数据结构的前提下,通过某种方式处理数据,使数据不能直接暴露用户的真实信息,下面我们就来看看SpringBoot中实现数据脱敏的具体方法吧
    2024-03-03
  • java哈希算法HashMap经典面试题目汇总解析

    java哈希算法HashMap经典面试题目汇总解析

    这篇文章主要为大家介绍了java哈希算法HashMap的经典面试题目汇总及问题解析,帮助大家彻底征服面试官,实现薪资自由,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-03-03
  • java实现二维码生成的几个方法(推荐)

    java实现二维码生成的几个方法(推荐)

    本篇文章主要介绍了java实现二维码生成的几个方法(推荐),具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • TCP/IP协议中三次握手四次挥手的原理及流程分析

    TCP/IP协议中三次握手四次挥手的原理及流程分析

    这篇文章主要介绍了TCP/IP协议中三次握手四次挥手的原理及流程分析,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Hadoop源码分析三启动及脚本剖析

    Hadoop源码分析三启动及脚本剖析

    本篇是Hadoop源码分析系列文章第三篇,主要介绍Hadoop启动以及脚本的剖析,后续本系列文章会持续更新,有需要的朋友可以借鉴参考下
    2021-09-09
  • 利用Jasypt如何对Spring Boot配置文件加密

    利用Jasypt如何对Spring Boot配置文件加密

    这篇文章主要给大家介绍了关于利用Jasypt如何对Spring Boot配置文件加密的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07

最新评论