JAVA 入门简单语法

支持多平台和纯面向对象的JAVA语言是一门更接近于自然语言的编程语言,依据耿祥义编著的《Java大学实用教程(第三版)》,学习了前三章之后,虽然还没有涉及到JAVA最精华的面向对象部分,但是在此就用两段小代码来总结一下当下的学习情况吧!

(一)使用while循环和二分查找去判断一个整数是否在一个已经排好序的int型数字中。

记事本编辑代码如下:

import java.util.*;   //由于要用到基本的输入输出函数,所以首先就把把.util包加载进来

public class Example3_8{

	public static void main(String[] args){   //程序的入口main()函数,一定要按照此规则来写,且不能省略该处

参数的传递,原因与函数的重载有关
		int n,start,end,middle;
		int a[]={-2,1,4,5,8,12,17,23,45,56,90,100};   //一种引用数据类型的定义方式
		start=0;
		end=a.length;   //注意:整形数组可以直接借助于.length直接可以返回数组的长度,而对于字符型的数组

是要用.length()函数来进行返回的
		middle=(start+end)/2;
		int count=0;
		Scanner reader= new Scanner(System.in);   //JDK1.5之后新增的类,提供了方便的键盘输入功能函数,

上下三句一般要进行搭配使用
		System.out.println("请输入一个整数:");
		n=reader.nextInt();
		while(n!=a[middle])
		{
			if(n>a[middle]){
				start=middle;
			}
			else if(n<a[middle]){
				end=middle;
			}
			middle=(start+end)/2;
			count++;
			if(count>a.length/2){
				break;
			}
		}
		if(count>a.length/2)
			System.out.println(n+"不在数组中");
		else System.out.println(n+"是数组中的第"+middle+"个元素");  //输出串值并自动加回车换行,“+”是

链接符

	}
}

由于代码量不是很够,所以还没有放手去使用强大的Java集成开发环境,所以.txt编辑的可能有点丑,而且还要借助于Windows下的DOS进行编译和运行,敬请见谅。但是,特别要注意的是由于代码中存在public的类,所以,一定要把源文件的名称存成相应的类名,且扩展名为:.java,防止出错。


(二)做个小题练练手

NEFU 955 :五人帮:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=955

题目分析:在一个数组中,该位置的上下左右还有自己本身一个五人帮,编程输出该五人帮的最大值。

特别注意,此题考察对数组的使用,由于会涉及到到旁边的元素,所以我们要从a[1][1]开始使用,虽然是用JAVA实现,在申请好数组之后,系统会自动根据该数组的类型来对其进行初始化,但是,此题目有多组数据,一次初始化并不能对下一次的输入值进行控制,所以每一次都要进行对数组的初始化,我用了一个二重循环实现。

其次,在OJ上提交题目时要注意,程序的入口类定义一定要如下:否则会出现编译错误(Compile Error)

public class Main{
    public static void main(String [] args){
    }
}
最终代码如下:

import java.util.*;

public class Main{

	public static void main(String[] args){
		int m,n,sum;
		int max;
		int[][]data=new int [20][20];  //二维数组的定义
		Scanner reader=new Scanner(System.in);  //此处操作只能进行一次
		while(reader.hasNext()&&reader.hasNext()){  //多组数据,一次获取输入两个值
			max=-99;   //max的初始化,每次都要进行一次
			m=reader.nextInt();
			n=reader.nextInt(); 
			for(int i=0;i<=15;i++){    //数组初始化
				for(int j=0;j<=15;j++){
					data[i][j]=0;
				}		
			}
			for(int i=1;i<=m;i++){
				for(int j=1;j<=n;j++){
					data[i][j]=reader.nextInt();
				}		
			}
			//for(int i=0;i<=m+1;i++){
				//for(int j=0;j<=n+1;j++){
					//System.out.printf("%d ",data[i][j]);
				//}
				//System.out.printf("\n");		
			//}
			sum=0;
			for(int i=1;i<=m;i++){  //计算五人帮,顺便把最大的五人帮求解出来
				for(int j=1;j<=n;j++){
					sum=data[i][j]+data[i-1][j]+data[i][j-1]+data[i][j+1]+data[i+1][j];
					if(sum>max){
						max=sum;
					}
				}		
			}
			System.out.println(max);
		}
	}
}
OJ上一定能过的代码,要想在DOS中运行,必须更改类名。


现在只学了那么多,之后面向对象的经典部分,敬请期待。


你可能感兴趣的:(JAVA 入门简单语法)