Math中的相关操作

随机数

Java中除了可以直接导入Random类,获取随机数,还可以通过本身自带的Math方法去获取随机数。Math.random()可以产生随机小数,区间范围为[0.0,1.0)。如下图:

double num=Math.random();
System.out.println(num);//输出一个0-1之间的随机小数

假设想要有一个区间为[3.6]之间的随机整数,如下:

/*1.原区间为[0,1)->[3,6]区间,可以先把[3,6]转化为[3,7)
2.原区间的距离是1,新区间的范围则是(6+1)-3,是原来的4倍
3.原区间是从0开始,新区间是从3开始
综合以上,可以得到一个公式:Math.random()*(max+1-min)+min
*/
    //以下 先取区间的小数,在利用强类型转换,取整
    int i=(int)(Math.random()*(6+1-3)+3);
    System.out.println(i);

其他类

Math.round(数字) 四舍五入 Math.max(值1,值2) 求最大值 Math.min(值1,值2) 求最小值

    System.out.println(Math.round(2.7));//3
    System.out.println(Math.round(2.76));//3
    System.out.println(Math.round(2.26));//3
    System.out.println(Math.min(3.2,5));//3.2
    System.out.println(Math.max(5,3.5));//5.0

循环体

Java中有些代码需要重复执行,可以使用循环语句。

For循环

语法结构:

          for(初始化条件;判断条件;迭代因子){
    循环体;
          }

      初始化条件:声明一个初始变量并赋值。

      判断条件:判断当前是否能够继续执行的条件,该判断条件是表达式值为boolean。当值为ture继续执行,否则跳出该循环。

      迭代因子:每次参与变化的因子,可以是初始变量。

执行流程如下:

      1.初始化条件,对初始变量进行声明并赋值。

      2.进入到判断条件,判断是否满足要求,满足则执行否则跳出循环。

      3.当满足要求时,进入循环体

      4.循环体结束之后,在执行迭代因子(更改初始变量)

      5.迭代因子执行之后,从第2步开始重新执行。

      注意:在循环体中,可以任意使用初始变量;

      当循环体语句只有一句话的时候,前后的{}可以省略

      //打印 50~100之间的数字
      int sum=0; //求和
      //执行顺序为 i=50 -> i=50 -> 输出i的值 ->sum+=50 ->i++ -> i=51
      for(int i=50;i<=100;i++){
         System.out.println(i);
     sum+=i;
      }
      System.out.println(sum);

    小常识:若是在CMD命令行无法结束程序,可以Ctrl+C结束程序。

while循环

while条件循环基本语法:

          while(条件判断){
               语句块;
               条件变化;
            }

while是先执行,在判断是否满足条件,满足条件在继续执行,不满足则退出循环。

示例:

        int i=1;  
        //条件初始化; 作用域在主方法中
        while(i<=100){
         System.out.println(i);
       //i++; //条件变化
        }

do_while循环

do_while语法结构如下:

          do{
           循环体语句;
            }while(条件判断);

示例:

          int i=1; //条件初始化;  作用域在主方法中
          do{
           System.out.println(i);
         i++; //条件变化
            }while(i<=100);//条件判断

注意:while与do_while之间的区别,while是先判断后执行,do_while是先执行后判断,所以do_while总是执行一遍。

以上三个循环都是可以相互转换的

break和continue

break 应用场景: switch 循环 作用: 终止,结束

                  //当打印1-10,并且当i=6时,跳出循环
                  for(int i=1;i<=10;i++){
                 //当i=6时,退出整个循环
                   if(i>5){
                   break;
                     }
                   }

continue 应用场景: 循环 作用: 结束本次循环,直接进入到下一次循环

                  //打印1~10之间的数字,遇到3或者3的倍数跳过
                  for(int i=1;i<=10;i++){
                   if(i%3==0){
                  //当遇到取3的余数为0的时候,跳出本次循环    
                   continue;
                   }
                 System.out.println(i);                }

循环嵌套

                  for(条件初始化;条件判断;条件变化){
                 //代码
                   for(条件初始化;条件判断;条件变化){
                   //代码
                }
                      //代码
                  }
/*利用循环嵌套,打印下图。
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
由于控制台式从左网由输入,所以是先打一行的*,打完之后换行。所以,每次是先打印一行完整的*,再打印第二行,逐行打印。
*/
              //外层循环i控制行 内层循环j控制列
              for(int i=1;i<=5;i++){
               for(int j=1;j<=5;j++){
                 //先打印行上的所有*
                 System.out.print("* ");
                 }
               //换行
               System.out.println();
              }

Java中循环体的初步了解以及另一种随机数的获取方法的更多相关文章

  1. Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)

    Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例  原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...

  2. java中把list列表转为arrayList以及arraylist数组截取的简单方法

    java中把list列表转为arrayList以及arraylist数组截取的简单方法 package xiaobai; import java.util.ArrayList; import java ...

  3. 如何在java中跳出当前多重嵌套循环?有几种方法?

    如何在java中跳出当前多重嵌套循环?有几种方法? - 两种方法   - 1.在外层循环定义标记          ok:          for(int i=0;i<100;i++){    ...

  4. Java中创建(实例化)对象的五种方式

    Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...

  5. 【转】Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例

    原文地址:http://www.cnblogs.com/luankun0214/p/4421770.html 感谢网友的分享,记录下来只为学习. 1.重写equals方法实例   部分代码参考http ...

  6. Java中实例方法,实例变量,静态方法,静态变量,final方法重写的问题,覆盖

    Java中只有非私有的实例方法能被重写,即实现多态,子类可以覆盖父类的方法,但是实例变量不能覆盖,若子类和父类均定义了同样名称的变量,则对于子类来说这是两个不同的变量,要想调用父类的变量必须显示去调用 ...

  7. Java中实现十进制数转换为二进制的三种思路

    Java中实现十进制数转换为二进制 第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒 ...

  8. 【转载】JAVA中综合接口和抽象类实现的一种“抽象接口”

    Muscleape个人总结:(这里的抽象接口是指:使用一个抽象类实现一个接口,是两部分结构) 使用一个抽象类直接实现接口,将接口中的方法区分为实现类必须要实现的和选择性实现的,其他需要实现接口的类型通 ...

  9. 在java中怎样实现多线程?线程的4种状态

    一.在java中怎样实现多线程? extends Thread implement Runnable 方法一:继承 Thread 类,覆盖方法 run(),我们在创建的 Thread 类的子类中重写 ...

随机推荐

  1. leetcood学习笔记-107-二叉树的层次遍历二

    题目描述: 方法一: class Solution(object): def levelOrderBottom(self, root): """ :type root: ...

  2. EasyUI - 简介

    1. EasyUI : 简单的界面设计框架, 基于jQuery的UI插件, 主要用来设计网站的后台管理系统 2. EasyUI使用 : 将EasyUI提供的js文件和主题(themes)样式存放到项目 ...

  3. Java递归调用

    6.递归调用 方法的递归调用就是方法自身调用自身. 以下程序因为递归没有结束的条件,所以一直压栈,没有弹栈,导致栈内存溢出错误!所以递归必须要有结束条件. public class Recursion ...

  4. NX二次开发-创建圆弧(圆心-半径)UF_CURVE_create_arc_center_radius

    NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_modl.h> UF_initializ ...

  5. 如何将Canvas中内容保存为图片

    Bitmap bm = Bitmap.createBitmap(320, 480, Config.ARGB_8888); Canvas canvas = new Canvas(bm); Paint p ...

  6. Windows内核驱动开发入门学习资料

    声明:本文所描述的所有资料和源码均搜集自互联网,版权归原始作者所有,所以在引用资料时我尽量注明原始作者和出处:本文所搜集资料也仅供同学们学习之用,由于用作其他用途引起的责任纠纷,本人不负任何责任.(本 ...

  7. PAT_A1043#Is It a Binary Search Tree

    Source: PAT A1043 Is It a Binary Search Tree (25 分) Description: A Binary Search Tree (BST) is recur ...

  8. Rabbit MQ 客户端 API 进阶

    之前说了一些基础的概念及使用方法,比如创建交换器.队列和绑定关系等.现在我们再来补充一下细节性的东西. 备份交换器 通过声明交换器的时候添加 alternate-exchange 参数来实现. Con ...

  9. eclipse导入别人项目配置tomcat和jdk

    1.file--import--General--Existing Projiect into Workspace-- 2.导入项目成功后,项目会有错误,需重新进行tomcat及jdk的配置 项目名右 ...

  10. pytorch clamp 与clamp_区别

    pytorch clamp 与clamp_ ,有下划线的表示修改并付给自身,无下划线的表示需要返回处理后的值,比如: h = k.clamp(min=0) #将结果存入h,k保留原值 k.clamp_ ...