黑马程序员技术交流社区

标题: 学习重点代码小记录 [打印本页]

作者: hujiajie007    时间: 2018-4-7 23:04
标题: 学习重点代码小记录
水仙花数?(重要案例)
                所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
                  举例:153是一个水仙花数
                  1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153

  分析:
                  A:三位数其实是告诉了我们范围,这个用for循环实现
                  B:获取每一个三位数的个位,十位,百位
                          如何获取一个三位数的个位,十位,百位呢?
                                  举例:153
                                  个位:153%10
                                  十位:153/10%10
                                  百位:153/10/10%10
                                  ...
                  C:拿个位,十位,百位的立方和和该数本身进行比较
                          如果相等,就说明该数是水仙花数,在控制台打印





public class ForTest4 {
        public static void main(String[] args) {
                //三位数其实是告诉了我们范围,这个用for循环实现
                for(int x=100; x<1000; x++) {
                       
                        int ge = x%10;
                        int shi = x/10%10;
                        int bai = x/10/10%10;
                       
                        //拿个位,十位,百位的立方和和该数本身进行比较
                        if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
                                //如果相等,就说明该数是水仙花数,在控制台打印
                                System.out.println(x);
                        }
                }
        }
}





需求:统计”水仙花数”共有多少个/(统计个数通用模式)

  分析:
                  A:定义统计变量,初始化值是0
                  B:获取三位数,用for循环实现
                  C:获取每个位上的数据
                  D:判断数据是否是水仙花数
                          如果是,就统计变量++
                  E:输出统计变量




public class ForTest5 {
        public static void main(String[] args) {
                //定义统计变量,初始化值是0
                int count = 0;
               
                //获取三位数,用for循环实现
                for(int x=100; x<1000; x++) {
                        //获取每个位上的数据
                        int ge = x%10;
                        int shi = x/10%10;
                        int bai = x/10/10%10;
                       
                        //判断数据是否是水仙花数
                        if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x){
                                //如果是,就统计变量++
                                count++;
                        }
                }
               
                //输出统计变量
                System.out.println("水仙花的个数是:"+count);
        }
}





  for循环语句的格式:
        for(初始化语句;判断条件语句;控制条件语句) {
                        循环体语句               
                 }




三种循环语句可以完成相同的事情,但是也是有小区别的:
     do...while循环语句至少执行一次循环体。
     而for和while循环语句要先进行条件的判断,然后看是否执行循环体语句。

for循环和while循环的小区别:
     for循环结束后,初始化的变量不能被使用了。
     而while循环结束后,初始化的变量还可以继续被使用。

推荐使用的顺序:
                for -- while -- do...while





       break和continue的区别:
         continue:继续的意思               
        break:跳出整个循环
        continue:跳出这一次的操作,进入下一次的执行
        for(int x=1; x<=5; x++) {
            if(x == 3) {
               continue;
                        }
         System.out.println("HelloWorld"+x);
                     }





三个数用if来比较大小(三个数):
                int a=5;
                int b=3;
                int c=8;
                int d;
                if(a<b){
                        if(c<a){
                                d=c;
                                System.out.println(d+"是最小值");
                                }else{
                                d=a;
                                System.out.println(d+"是最小值");
                             }
                }else{
                        if(c<b){
                                d=c;
                                System.out.println(d+"是最小值");
                        }else{
                                d=b;
                                System.out.println(d+"是最小值");
                             }
                    }





为了提高程序的灵活性,我们把数据改进为键盘录入。(键盘录入的具体步骤)
使用步骤:
  A:导包
    import java.util.Scanner;
    注意:在一个类中,有这样的顺序关系
     package > import > class
  B:创建键盘录入对象
    Scanner sc = new Scanner(System.in);
  C:获取数据
    int i = sc.nextInt();




Random:用于产生随机数的类。用法和Scanner类似。(取随机数)
使用步骤:
  A:导包
        import java.util.Random;
  B:创建对象
          Random r = new Random();
  C:获取随机数
          int number = r.nextInt(10);
          获取的范围:[0,10)        包括0,不包括10






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