黑马程序员技术交流社区

标题: 冯佳老师视频作业,自己写的,有问题的可以讨论哦 [打印本页]

作者: xiongshiran    时间: 2015-12-24 20:37
标题: 冯佳老师视频作业,自己写的,有问题的可以讨论哦
写在前面,第四天 循环控制语句的作业答案, 答案都是我自己写的,如果有些错的地方请积极指出,如果有看不懂的地方,可以来留言.谢谢


1:for循环的格式?要能看懂执行流程。
  用for循环完成如下案例
  
  求和

    import java.util.Scanner;
    class Test {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个数");
            int a = sc.nextInt();
            int sum = 0;
            for (int x = 1;x <=a ;x++ ) {
                sum += x;
            }
            System.out.println("sum = " + sum);
        }
    }

  求偶数和
   
    import java.util.Scanner;
    class Test {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个数");
            int a = sc.nextInt();
            int sum = 0;
            for (int x = 1;x <=a ;x++ ) {
                if (x % 2 == 0) {
                    sum += x;
                }            
            }
            System.out.println("sum = " + sum);
        }
    }

  求奇数和
   
    import java.util.Scanner;
    class Test {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个数");
            int a = sc.nextInt();
            int sum = 0;
            for (int x = 1;x <=a ;x++ ) {
                if (x % 2 == 1) {
                    sum += x;
                }            
            }
            System.out.println("sum = " + sum);
        }
    }

  打印水仙花数
   
    import java.util.Scanner;
    class Test {
        public static void main(String[] args) {
            int a,b,c,sum;
            for (int x = 100;x <= 999 ;x++ ) {
                a = x % 10;
                b = x / 10 % 10;
                c = x / 100;
                sum = a*a*a + b*b*b + c*c*c;
                if (x == sum) {
                    System.out.println(x);
                }
            }
        }
    }


  统计水仙花数
   
    import java.util.Scanner;
    class Test {
        public static void main(String[] args) {
            int a,b,c,sum,count = 0;
            for (int x = 100;x <= 999 ;x++ ) {
                a = x % 10;
                b = x / 10 % 10;
                c = x / 100;
                sum = a*a*a + b*b*b + c*c*c;
                if (x == sum) {
                    count++;
                }
            }
            System.out.println("count = " + count);
        }
    }

  九九乘法表
   
    import java.util.Scanner;
    class Test {
        public static void main(String[] args) {
            for (int x = 1;x <= 9 ;x++ ) {
                for (int y = 1;y <= x ;y++ ) {
                    System.out.print(y + "*" + x + "=" + x*y + "\t");
                }
                System.out.println();
            }
        }
    }

2:while循环的格式?要能看懂执行流程
  用while循环完成如下案例
  
  求和
  纸张折叠成珠穆朗玛峰高度的次数
   
      假设珠穆朗玛峰高度为8848米 一层纸代表0.01米
      
      思路:
      1,一张纸为1,对折一次为2,对折两次为4,对折三次为8*/
   
      
    import java.util.Scanner;
    class Test {
        public static void main(String[] args) {
            double i = 0.01;
            int count = 0;
            while (i <= 8848.0) {
                i *= 2;
                count++;
            }
            System.out.println("count = " + count);
        }
    }

3:break,continue和return分别有什么用?

* break;跳出循环
* continue;终止本次循环,继续执行下次循环
* return;跳出方法

4:函数的概念?函数的格式?格式的解释说明

    * A:为什么要有方法(函数)
    * 提高代码的复用性
    * B:什么是方法(函数)
    * 完成特定功能的代码块。

    修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){
        方法体语句;
        return 返回值
    }
    * D:方法的格式说明
        * 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
        * 返回值类型:就是功能结果的数据类型。
        * 方法名:符合命名规则即可。方便我们的调用。
        * 参数:
            * 实际参数:就是实际参与运算的。
            * 形式参数;就是方法定义上的,用于接收实际参数的。
        * 参数类型:就是参数的数据类型
        * 参数名:就是变量名
        * 方法体语句:就是完成功能的代码。
        * return:结束方法的。
        * 返回值:就是功能的结果,由return带给调用者。

5:函数的调用

    A:明确返回值类型的函数调用
    赋值调用
    B:void类型的函数调用
    单独调用
   



作者: xiongshiran    时间: 2015-12-24 20:38
6:函数的练习:

* A:求两个数据之和
         
        import java.util.Scanner;
        class Test {
            public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入第一个整数");
                int a = sc.nextInt();
                System.out.println("请输入第二个整数");
                int b = sc.nextInt();
        
                int sum = he(a,b);
        
                System.out.println("sum = " + sum);
            }
        
            public static int he(int a,int b) {
                return a + b;
            }
        }

    B:判断两个数据是否相等
         
        import java.util.Scanner;
        class Test {
            public static void main(String[] args) {
                int a = 10;
                int b = 11;
        
                boolean c = isEquals(a,b);
                System.out.println(c);
            
            }
        
            public static boolean isEquals(int a,int b) {
                return (a == b);
            }
        }

    C:获取两个数中较大的值
        
        import java.util.Scanner;
        class Test {
            public static void main(String[] args) {
                int a = 10;
                int b = 20;
        
                int max = getMax(a,b);
                System.out.println(max);
            
            }
        
            public static int getMax(int a,int b) {
                return (a > b) ? a : b;
            }
        }
    D:打印m行n列的星形矩形
        
        import java.util.Scanner;
        class Test {
            public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入行数");
                int row = sc.nextInt();
                System.out.println("请输入列数");
                int conlumn = sc.nextInt();
        
                print(row,conlumn);
            
            }
        
            public static void print(int a,int b) {
                for (int x = 1;x <= a ;x++ ) {
                    for (int y = 1;y <= b ;y++ ) {
                        System.out.print("*");
                    }
                    System.out.println();
                }
               
            }
        }


    E:打印nn乘法表
        
        import java.util.Scanner;
        class Test {
            public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个数");
                int x = sc.nextInt();
               
                pro(x);
        
            }
            public static void pro(int a) {
                for (int x = 1;x <= a ;x++ ) {
                    for (int y = 1;y <= x ;y++ ) {
                        System.out.print(y + "*" + x + "=" + x*y + "\t");
                    }
                    System.out.println();
                }
            }
        }


7:什么是函数重载?以及函数重载的练习?把讲过的案例练习一次即可

* 重载:方法名相同,参数列表不同,与返回值类型无关




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