07day_Java基础语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07day_Java基础语法相关的知识,希望对你有一定的参考价值。

1、循环练习

(1)编写程序求1+3+5+7+…+99的值。

  

 1 public class LoopTest{
 2     public static void main(String args[]){
 3         int sum=0;//定义变量,保存求和
 4         for(int i=1;i<=99;i++){
 5             //奇偶性判断
 6             if(i%2==1){
 7                 sum += i;//对奇数求和
 8             }
 9         }
10         System.out.println(sum);
11     }
12 }

运行结果:

技术分享图片

(2)计算水仙花数:个位数的立方+十位数的立方+百位数的立方=自己本身(三位数)

 1 public class LoopTest_1{
 2     public static void main(String args[]){
 3         int bai=0;
 4         int shi=0;
 5         int ge=0;
 6         //循环,循环变量从100-999
 7         for(int i=100;i<1000;i++){
 8             bai=i/100;//获取百位
 9             shi=i/10%10;//获取十位
10             ge=i%10;//获取个位
11             if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i){
12                 System.out.println(i);
13             }
14         }
15     }
16 }

运行结果:

技术分享图片

(3)ASCII编码表

  美国标准信息交换代码(American Standard Code for Information Interchange);

  计算机世界,01 二进制,对于人类不好认识,不好计算,但是计算机对于二进制是非常喜欢的;

  美国:计算机可以直接识别人类的文字;

  人类的文字和一个整数进行一一对应,人为规定,字母a对应十进制数97,A对应十进制数65;

  数字0-9的对应48-57,大写字母A-Z对应65-90,小写字母a-z对应97-122;

  计算机存的是对应编码的二进制;

  计算机识别汉字:中国自己的编码表,十进制对应一个汉字。简体中文编码表GB2312,现在编码表升级为GBK;

  国际标准ISO,万国码:Unicode;

  char存储汉字,查询Unicode编码表;

  char取值范围是0-65535,无符号的数据类型。

 1 public class ASCIIDemo{
 2     public static void main(String args[]){
 3         char c=‘a‘;
 4         int i=c+1;//char转成int类型的时候,类型自动提示,char数据类型会查询编码表,得到整数
 5         System.out.println(i);//98
 6         
 7         int j=90;
 8         char h=(char)j;//int转成char类型的时候,强制转换,会查询编码表
 9         System.out.println(h);
10         
11         System.out.println((char)6);
12         
13         char k=‘你‘;
14         System.out.println(k);
15     }
16 }

 

(4)输出所有英文字母的小写和大写

 1 public class LoopTest_2{
 2     public static void main(String args[]){
 3         //利用编码表实现,字母和数字的对应关系
 4         //A-Z    65-90
 5         //a-z    97-122
 6         char xiaoXie=‘a‘;
 7         char daXiao=‘A‘;
 8         //定义循环,次数26次
 9         for(int i=0;i<26;i++){
10             System.out.println(xiaoXie+" "+daXiao);
11             xiaoXie++;
12             daXiao++;
13         }
14     }
15 }

运行结果:

技术分享图片

(5)打印99乘法表

 

 1 public class LoopTest_3{
 2     public static void main(String args[]){
 3         int n=9;
 4         for(int i=1;i<=n;i++){
 5             for(int j=1;j<=i;j++){
 6                 System.out.print(i+"*"+j+"="+i*j+"\\t");
 7             }
 8             System.out.println();
 9         }
10     }
11 }

运行结果:

技术分享图片

 

2、数组练习

(1)定义打印数组元素方法,按照给定的格式打印[11,22,33,44,55]

 1 public class ArrayMethodTest{
 2     public static void main(String args[]){
 3         int[] arr={11,22,33,44,55};
 4         printArray(arr);
 5         int[] arr2={10,20,30,40,50};
 6         printArray(arr2);
 7     }
 8     
 9     /*
10         打印数组
11     */
12     public static void printArray(int[] arr){
13         //输出一半中括号
14         System.out.print("[");
15         //数组遍历
16         for(int i=0;i<arr.length;i++){
17             //数组最后一个元素,保证换行
18             if(i==arr.length-1){
19                 System.out.println(arr[i]+"]");
20             }else{
21             //非数组最后一个元素
22             System.out.print(arr[i]+",");
23             }
24         }    
25     }
26 }

运行结果:

技术分享图片

(2)数组元素逆序

  ①数组的元素逆序并不是指倒序输出

 1 /*
 2     数组的倒序输出
 3 */
 4 public class ArrayMethodTest_1{
 5     public static void main(String args[]){
 6         int[] arr={1,2,3,4};
 7         for(int i=arr.length-1;i>=0;i--){
 8             System.out.println(arr[i]);
 9         }
10     }
11 }

  ②数组逆序

  数组最远端位置的交换,逆序不等于反向遍历;

  数组中最远的两个索引进行位置交换,实现数组的逆序;

  

 1 public class ArrayMethodTest_2{
 2     public static void main(String args[]){
 3         int[] arr={1,2,3,4};
 4         //调用数组的逆序方法
 5         reverse(arr);
 6         printArray(arr);
 7     }
 8     
 9     /*
10         数组遍历,遍历过程中,最远端交换
11     */
12     public static void reverse(int[] arr){
13         for(int min=0,max=arr.length-1;min<max;min++,max--){
14             int temp=arr[min];
15             arr[min]=arr[max];
16             arr[max]=temp;
17         }
18     }
19     
20     /*
21         打印数组
22     */
23     public static void printArray(int[] arr){
24         //输出一半中括号
25         System.out.print("[");
26         //数组遍历
27         for(int i=0;i<arr.length;i++){
28             //数组最后一个元素,保证换行
29             if(i==arr.length-1){
30                 System.out.println(arr[i]+"]");
31             }else{
32             //非数组最后一个元素
33             System.out.print(arr[i]+",");
34             }
35         }    
36     }
37 }

运行结果:

技术分享图片

(3)选择排序(selectSort)

  数组的排序:一般是升序排序,元素从小到大;
     规则:比较大小,位置交换;

  选择排序(selectSort):数组中每个元素进行比较

 

 1 /*
 2     选择排序(selectSort)
 3 */
 4 public class ArrayMethodTest_3{
 5     public static void main(String args[]){
 6         int[] arr ={1,8,3,-6,0,9};
 7         selectSort(arr);
 8         printArray(arr);
 9     }
10     
11     /*
12         选择排序方法
13     */
14     public static void selectSort(int[] arr){
15         for(int i=0;i<arr.length-1;i++){
16             for(int j=i+1;j<arr.length;j++){
17                 //数组的元素进行判断
18             if(arr[i]>arr[j]){
19                     //数组的换位
20                     int temp=arr[i];
21                     arr[i]=arr[j];
22                     arr[j]=temp;
23                 }
24             }
25         }
26     }
27     
28     /*
29         打印数组
30     */
31     public static void printArray(int[] arr){
32         //输出一半中括号
33         System.out.print("[");
34         //数组遍历
35         for(int i=0;i<arr.length;i++){
36             //数组最后一个元素,保证换行
37             if(i==arr.length-1){
38                 System.out.println(arr[i]+"]");
39             }else{
40             //非数组最后一个元素
41             System.out.print(arr[i]+",");
42             }
43         }    
44     }
45 }

运行结果:
技术分享图片

(4)冒泡排序(bubbleSort)

  数组的相邻元素换位置

  

 1 /*
 2     冒泡排序
 3 */
 4 public class ArrayMethodTest_4{
 5     public static void main(String args[]){
 6         int[] arr ={1,8,3,-6,0,9};
 7         bubbleSort(arr);
 8         printArray(arr);
 9     }
10     
11     /*
12         冒泡排序方法
13     */
14     public static void bubbleSort(int[] arr){
15         for(int i=0;i<arr.length-1;i++){
16             for(int j=0;j<arr.length-i-1;j++){
17                 //比较的索引是j和j+1
18             if(arr[j]>arr[j+1]){
19                     int temp=arr[j];
20                     arr[j]=arr[j+1];
21                     arr[j+1]=temp;
22                 }
23             }
24         }
25     }
26     /*
27         打印数组
28     */
29     public static void printArray(int[] arr){
30         //输出一半中括号
31         System.out.print("[");
32         //数组遍历
33         for(int i=0;i<arr.length;i++){
34             //数组最后一个元素,保证换行
35             if(i==arr.length-1){
36                 System.out.println(arr[i]+"]");
37             }else{
38             //非数组最后一个元素
39             System.out.print(arr[i]+",");
40             }
41         }    
42     }
43 }

运行结果:

技术分享图片

(5)数组的折半查找

 1 public class ArrayMethodTest_5{
 2     public static void main(String args[]){
 3         int[] arr={1,3,5,7,9};
 4         int index=binarySearch(arr,5);
 5         System.out.println(index);
 6     }
 7     
 8     /*
 9         数组的折半查找
10     */
11     public static int binarySearch(int[] arr,int key){
12         int min=0;
13         int max=arr.length-1;
14         int mid=0;
15         
16         //循环折半,条件min<=max
17         while(min<=max){
18             //计算中间索引
19             mid=(min+max)/2;
20             if(key>arr[mid]){
21                 min=mid+1;
22             }else if(key<arr[mid]){
23                 max=mid-1;
24             }else{
25                 //找到元素,返回元素索引
26                 return mid;
27             }
28         }
29         //没有找到
30         return -1;
31     }
32 }

运行结果:

技术分享图片

 



以上是关于07day_Java基础语法的主要内容,如果未能解决你的问题,请参考以下文章

01day_Java基础语法

02day_Java基础语法

10day_Java面向对象

JSP 基础语法

JSP开发中的基础语法

09day_Java面向对象