黑马程序员技术交流社区

标题: 构造函数,猜字游戏改进,选择排序另两种方法,九九乘法表改进 [打印本页]

作者: wangmiaosen    时间: 2015-12-21 23:28
标题: 构造函数,猜字游戏改进,选择排序另两种方法,九九乘法表改进
1)创建对象要使用空参数的构造方法。
{
        Person(String name,int age){
        System.out.println();

        }
}这样,如果你不输入name.age,就无法创建类的对象,因为系统给的空构造函数已经不在了
2)老师课堂上讲的猜字游戏并没有容错机制,但是输入100以上的数字也是没问题的,加一个容错机制,让程序更加温馨,代码如下:
import java.util.Scanner;
class Demo {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                               
                                int guessNum= (int)(Math.random()*100)+1;
                                System.out.println("请输入一个1到100之间的数字");
                                while (true) {
                                       
                                        int input = sc.nextInt();
                                        if (input <1 || input >100){
                                                System.out.println("请您输入正确的数字,1到100之间");
                                                continue;       
                                        }
                                         else if (input > guessNum){
                                                System.out.println("您猜大了");
                                        }else if (input < guessNum){
                                                                System.out.println("您猜的小了");
                                        } else{
                                        System.out.println("恭喜您过关");
                                        break;
                                        }
                                }
        }
}
3)选择排序的另外一种方法,用一个临时变量记录住那个数,最后再换位置:
class Demo {
        public static void main(String[] args) {
                int [] arr = {3,7,8,4,9,3};
                printArray(arr);
                selectSort(arr);
                printArray(arr);

        }

        public static void printArray(int [] arr) {
                System.out.print("[");
                for (int x = 0;x< arr.length ;x++ ) {
                        if (x == arr.length-1){
                                System.out.print(arr[x]);
                        }else{
                                System.out.print(arr[x]+",");
                        }
                }
                System.out.println("]");
        }

        public static void selectSort(int []arr){
               
                for (int x =0;x <arr.length-1 ;x++ ) {
                        int num = arr[x];
                        int index = x;
                        for (int y = x+1;y <arr.length ;y++ ) {
                                if (num > arr[y]) {
                                        num = arr[y];
                                        index = y;
                                }

                        }
                        if (index!= x){
                                swap(arr,index,x);
                        }
                }
        }

        public static void swap(int [] arr,int a,int b) {
                int temp = arr[a];
                        arr[a] = arr[b];
                        arr[b] = temp;
       
        }
}
4)导包,超简单的排序:
import java.util.Arrays;
class Demo {
        public static void main(String[] args) {
                int [] arr = {3,7,8,4,9};
                printArray(arr);
                Arrays.sort(arr);
                printArray(arr);

        }

        public static void printArray(int [] arr) {
                System.out.print("[");
                for (int x = 0;x< arr.length ;x++ ) {
                        if (x == arr.length-1){
                                System.out.print(arr[x]);
                        }else{
                                System.out.print(arr[x]+",");
                        }
                }
                System.out.println("]");
        }

}
5)上次九九乘法表,在输入开始的地方,输入其他汉字就会报错,现在可以给您温馨提示了,必须得输入开始,问题是,结束的地方还是有bug,不能输入其他字符,求指教:
import java.util.Scanner;

class Demo {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("输入--开始 ---游戏开始");
        w:        while (true){
                        String str = sc.nextLine();
                                        if (str.equals("开始")) {
                                                q:while (true) {
                                                        System.out.println("输入游戏结束,则游戏结束; 输入1-9的数据则游戏运行");
                                                        String str1 = sc.nextLine();
                                                        if (str1.equals("游戏结束")) {
                                                                System.out.println("谢谢使用,欢迎下次光临");//如果输入1101,本循环结束,程序结束
                                                                break w;
                                                        }
                                                        else if (Integer.parseInt(str1) < 1 || Integer.parseInt(str1) > 9) {
                                                                System.out.println("请您输入1到9之间的数字,谢谢");// 如果输入1到9之外的数,跳出本次循环,继续下次
                                                                continue;
                                                        }
                               
                                                        print99(Integer.parseInt(str1));
                                                }
                                        }else {
                                                System.out.println("请您输入开始,谢谢");

                                        }
                }
               
               
        }

        public static void print99(int a) {
                for (int x = 1; x <= a; x++) {
                        for (int y = 1; y <= x; y++) {
                                System.out.print(y + "*" + x + "=" + y * x + "\t");
                        }
                        System.out.println();
                }
        }
}

交流QQ:564626316
作者: 许庭洲    时间: 2015-12-23 14:59
值得学习ing!
作者: wangmiaosen    时间: 2015-12-23 16:16
许庭洲 发表于 2015-12-23 14:59
值得学习ing!

有什么想法,就努力去实现就好
作者: 唐洪超    时间: 2015-12-24 11:16
这个看起来不错
作者: wangmiaosen    时间: 2015-12-24 21:55
唐洪超 发表于 2015-12-24 11:16
这个看起来不错

有bug还需要改进。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2