实验二  Java基本语法

一、实验目的与要求

1、掌握Java常用编程工具的使用;

2、掌握Java语言的基本语法,包括:标识符、简单类型、表达式及运算、选择结构、循环结构、数组、输入输出。

二、实验原理

标识符:Java语言使用的是Unicode字符集,使用2个字节表示一个符号,总共可描述65536个不同的符号,基本上可以描述世界上所有国家的文字。因此,除可以使用通常的方式来命名标识符之外,也可以使用中文、日文、朝鲜文作为标识符。但是,对于程序员来说:最好还是使用遵从一般规范。

在Java语言中规定了各基本类型的数据所占的固定字节数。分别如下:byte 1个字节, short 2个字节, cahr 2个字节, int 4个字节, long 8个字节, float 4个字节, double 8个字节。

与C语言不同的是,Java语言中增加了boolean类型,即逻辑类型(布尔类型),其变量只有2个常量值,绝对不能与C中的非0就是真、0就是假混淆。

运算规则、选择结构、循环结构与C语言基本一致,不再赘述了。

数组属于特殊的类,每个数组都是一个对象。对象都是指针。

一维数组的声明、定义、赋值(创建数组),访问(包括使用foreach方式,Java中新增加的遍历方式),数组的元素个数

二维数组:JAVA的二维数组和一维数组的内存是分开分配的。

 

三、实验内容

java语言之基本语法 java语言基本语法实验报告_Math

[老师给的图,现在回头一看老师用的可能是假的《疯狂JAVA讲义》,3乘以1居然得2,笑死我了,一百多块钱的书校对质量是这样的吗?!哈哈哈哈哈哈哈]

1.使用循环输出九九乘法表,输出如下结果

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

java语言之基本语法 java语言基本语法实验报告_Java_02

2.使用循环输出等腰三角形

public class text2 {
    public static void main(String[] args){
        int h=4;//层数
        for(int i=1;i<=h;i++){
            for(int j=1;j<=h-i;j++){
                System.out.print(" ");
            }
            for(int k=1;k<=2*i-1;k++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

java语言之基本语法 java语言基本语法实验报告_java语言之基本语法_03

3.通过API文档查询Math类的方法,打印近似圆

public class text3 {
    public static void main(String[] args){
    //调用绘图函数,参数是圆的半径
        paint(10);
    }
    public static void paint(int r){
    //假定圆心在坐标(r,r)处
        int x = 0;//
        int y = 0;//
        int c = 0;//中间空格数
        int z = 2;//每行递减量,步长设为2是为了调节屏幕纵横比。
        for (int i = 0; i <= r*2; i += z){
    //获取画*点的坐标的x值
            x = getX(r, y);
    //先画y值上左边的*
            System.out.print(getSpace(x)+"*");
            c = (r-x)*2;//以圆心对称输出空格
    //再画该y值上右边的*
            System.out.println(getSpace(c)+"*");
    //每次y值递减
            y += z;
        }
    }
    public static int getX(int r, int y){
    //取直角三角形长边长
        int h = y - r;
    //求直角三角形短边长
        double l = Math.sqrt((r*r)-(h*h));
    //取x值,Math.round()返回最接近的整数
        return (int) Math.round(r-l);
    }
    public static String getSpace(int i){
        String s = "";
        for(int j = 0; j<i;
            j++){
            s += " ";
        }
        return s;
    }
}

java语言之基本语法 java语言基本语法实验报告_System_04

4.实现一个按字节来截取字符串的子串的方法

public class text4 {
    public static void main(String[] args) {
        String str1 = "中国abc";
        String str2 = str1.substring(1,3);//从第1号位置开始截取字符串,截到3号位,把截取后的返回,赋值给str2
        System.out.println("str1:" + str1);
        System.out.println("str2:" + str2);
    }
}

java语言之基本语法 java语言基本语法实验报告_java语言之基本语法_05

5.编写一个程序,将浮点数转换成人民币读法字符串

package Day01;
import java.util.*;
public class text5 {
private String[] hanArr = {"零", "壹", "贰", "叁","肆", "伍", "陆", "柒", "捌", "玖"};
       private String[] unitArr = {"分","角","元","拾","佰","仟","萬","拾","佰","仟","亿","拾","佰","仟"};
       /**
    * 把一个浮点数转换成人民币读法字符串
    * 本程序最大的读数为千亿
    */
        private String toHanStr(double input){
            String result = "";
            long num = (long) (input * 100);
            int b;
            int count = -1;//用于记录当前位的上一位是否为0
            int len = String.valueOf(num).length();
            boolean isWanZero = false;//判断万位数是否为0
            if (len > 10)
            {   isWanZero = String.valueOf(num).substring(len - 10, len - 6).equals("0000");
             }
            for (int i = len - 1; i>= 0; i--)
              {
               b = (int)(num / Math.pow(10.0, i));
               if (b != 0)
                 {
                   num = (long)(num - b * Math.pow(10.0, i));
                   if (count == 0)
                   {
                     //如果前一位为0,即count == 0,则加零
                      result += hanArr[0] + hanArr[b] + unitArr[i % len];
                    } else {
                             result += hanArr[b] + unitArr[i % len];
                            }
                  } else {
                          //加亿,萬,元
                          if (i % 4 == 2 && !(i == 6 && isWanZero))
                          {
                           result += unitArr[i % len];
                           }
                          }
                  count = b;
               }
        return result;
 }
public static void main(String[] args) {
    text5 fr = new text5();
    System.out.println("请输入要转化成人民币读法的浮点数:");
    Scanner in = new Scanner(System.in);
    double money = in.nextDouble();
    System.out.println(fr.toHanStr(money));
    }
}

java语言之基本语法 java语言基本语法实验报告_System_06