java学习2-用*打出菱形

作为一个java的初学者,有必要把自己学过的东西整理一下,可以让以后有一段回忆,有一个比较。

实际上自己当初编写的第一个java程序是星星,菱形的星星,在控制台输入一个数字后,输入3

 则菱形如:

                         *

                        * *

                       * * *

                        * *

                         *

代码是

package first.star;

import java.util.Scanner;

public class star {

	public static void main(String[] args) {
		System.out.print("please input your row number:");
		Scanner in = new Scanner(System.in);
		int rowNum = in.nextInt();
		// int i = Integer.parseInt(args[0]);
		int j, n;

		// 实现上半部分的星
		for (j = 1; j <= rowNum; j++) {
			fun(j, rowNum);
		}

		// 实现下半部分的星
		for (j = rowNum - 1; j >= 1; j--) {
			fun(j, rowNum);
		}
	}

	/**
	 * @param j
	 *            为第几行
	 * @param rowNum
	 *            输入的行数 通过这两个参数算出每一行前面的空格和该输入的星号
	 */
	private static void fun(int j, int rowNum) {
		int n;

		// 输出一行的前面空格
		for (n = rowNum - j; n >= 0; n--) {
			System.out.print(" ");
		}

		// 输出*和空格
		for (n = 0; n < j; n++) {
			System.out.print("* ");
		}
		System.out.println();
	}
}

 

 

 

 

 

看这个代码确实有很多回忆的地方,比如说scanner,好久没有用了,都快忘了还有这么一个可以输入的东西了,后来一直用网页等的输入,所以这个控制台的东西都快忘光了。这个程序记得也是当时修改了好几遍才改好的。不然的话怎么可能一开始就想到都重复调用同一个fun来去输出*呢?

 

还有这个命名rowNum,如果以现在的习惯肯定会命名成rowNumber,在类和方法的前面并没有加上java doc的注释,但是加了部分!还有就是那个就是没有对输入数字作处理,异常等等,但是这个毕竟是第一个比较完整的程序,也不能太苛求什么!

 

记得当时是用windowsdos窗口命令行下编译输出的!还专门写了一个bat文件,里面的内容是:

rem CLASSPATH指向当前路径

set CLASSPATH=%CD%

cd first\star

javac Star.java

java first.star.Star

pause

 

bat文件的注释,classpath的设定,编译,运行,暂停。这是第一次写的,后来再有用到的也都copy了,到最后根本不写了!呵呵……

 

其实这个程序主要就是循环,分支,方法的调用等等……如果学过C的话,现在的编程和C没有什么大区别。但是整个程序的运行机制不同,java是先编译成class文件然后再运行。如果我们运行完javac Star.java 这条命令,就会发现同一个文件夹下面多一个Star.class文件。这个就是java所谓的write-once run-anywhere,就是用这个class文件拷贝到各个java虚拟机上去运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值