Java中循环体的初步了解以及另一种随机数的获取方法
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中循环体的初步了解以及另一种随机数的获取方法的更多相关文章
- Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)
Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例 原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...
- java中把list列表转为arrayList以及arraylist数组截取的简单方法
java中把list列表转为arrayList以及arraylist数组截取的简单方法 package xiaobai; import java.util.ArrayList; import java ...
- 如何在java中跳出当前多重嵌套循环?有几种方法?
如何在java中跳出当前多重嵌套循环?有几种方法? - 两种方法 - 1.在外层循环定义标记 ok: for(int i=0;i<100;i++){ ...
- Java中创建(实例化)对象的五种方式
Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...
- 【转】Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例
原文地址:http://www.cnblogs.com/luankun0214/p/4421770.html 感谢网友的分享,记录下来只为学习. 1.重写equals方法实例 部分代码参考http ...
- Java中实例方法,实例变量,静态方法,静态变量,final方法重写的问题,覆盖
Java中只有非私有的实例方法能被重写,即实现多态,子类可以覆盖父类的方法,但是实例变量不能覆盖,若子类和父类均定义了同样名称的变量,则对于子类来说这是两个不同的变量,要想调用父类的变量必须显示去调用 ...
- Java中实现十进制数转换为二进制的三种思路
Java中实现十进制数转换为二进制 第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒 ...
- 【转载】JAVA中综合接口和抽象类实现的一种“抽象接口”
Muscleape个人总结:(这里的抽象接口是指:使用一个抽象类实现一个接口,是两部分结构) 使用一个抽象类直接实现接口,将接口中的方法区分为实现类必须要实现的和选择性实现的,其他需要实现接口的类型通 ...
- 在java中怎样实现多线程?线程的4种状态
一.在java中怎样实现多线程? extends Thread implement Runnable 方法一:继承 Thread 类,覆盖方法 run(),我们在创建的 Thread 类的子类中重写 ...
随机推荐
- CSP-S2019旅游记
CSP-S2019 你问我为什么写旅游记? 因为好像除了旅游我今年啥都没干 Day0 校内模拟一直被吊锤,考前几场几乎要爆零 这提莫就不是什么好兆头 在家二刷水淹东京完回学校,带了一大堆家当上车 去广 ...
- 自定义alert 确定、取消功能
以删除为例,首先新建html <table border="1" cellpadding="0" cellspacing="0" id ...
- arcgis api for javascipt 输出图片
地图模板制作-发布-gpurl调用 window.open可以直接打开url链接. saveas可以另存,仅支持ie浏览器 <!DOCTYPE html><html><h ...
- Centos搭建http代理服务器(无密码验证)
一.安装shadowsocks yum install python-setuptools && easy_install pip pip install shadowsocks 二. ...
- WebStorm+Node.js开发环境的配置
1 下载地址: webstorm:http://www.jetbrains.com/webstorm node.js:https://nodejs.org/download/ 2 安装node.js ...
- spark1.0.2读取hbase(CDH0.96.1)上的数据
基本环境: 我是在win7环境下,spark1.0.2,HBase0.9.6.1 使用工具:IDEA14.1, scala 2.11.6, sbt.我现在是测试环境使用的是单节点 1.使用IDEA创建 ...
- tushare使用教程:初始化调用PRO版数据示例
下面介绍两种常用的数据调取方式: 通过tushare python包 使用http协议直接获取 注:pro版数据接口采用语言无关的http协议实现,但也提供了多种语言的SDK数据获取. 前提条件 1. ...
- uoj213 【UNR #1】争夺圣杯
题目 设\(f_i\)表示所有长度为\(i\)的区间的最大值的和,求\(\bigoplus \sum_{i=1}^nf_i\) 不难发现随机数据非常好做 由于一个随机序列的前缀最大值期望只会变化\(\ ...
- VB.NET利用正則表達式巧妙限制字符输入
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u010028869/article/details/37913867 在通常的程序设计中.对 ...
- 如何收集项目日志统一发送到kafka中?
上一篇(http://qindongliang.iteye.com/blog/2354381 )写了收集sparkstreaming的日志进入kafka便于后续收集到es中快速统计分析,今天就再写一篇 ...