目录
一,三种随机数
第一种:new Random()
第二种:Math.random()
第三种:currentTimeMillis()
二,Scanner
三,三种基本流程结构
顺序结构
分支结构
循环结构
if简单语法结构
else if语法结构
switch语法结构
循环结构四个要素
for
while
do while
四,位运算符
五,三种交换数值的方式
一,三种随机数
第一种:new Random()
导包: import java.util.Randow
这种需要借助java.util.Random类来产生一个随机数发生器,也是最常用的一种,构造函数有两个,Random()和Random(long seed)。第一个就是以当前时间为默认种子,第二个是以指定的种子值进行。产生之后,借助不同的语句产生不同类型的数。
其中,种子就是产生随机数的第一次使用值,机制是通过一个函数,将这个种子的值转化为随机数空间中的某一个点上,并且产生的随机数均匀的散布在空间中。以后产生的随机数都与前一个随机数有关。这里以代码为例。
public static void main(String[] args)
{
Random r = new Random(1);
for(int i=0 ; i<5 ; i++)
{
int ran1 = r.nextInt(100);
System.out.println(ran1);//可以产生五个在【0,100)中的整数
}
}
第二种:Math.random()
这种方法返回的数值是[0.0,1.0)的double型数值,由于double类数的精度很高,可以在一定程度下看做随机数,借助(int)来进行类型转换就可以得到整数随机数了,代码如下。
public static void main(String[] args)
{
int max=100,min=1;
int ran2 = (int) (Math.random()*(max-min)+min);
System.out.println(ran2);//返回值的范围【1,100);
}
第三种:currentTimeMillis()
public static void main(String[] args)
{
int max=100,min=1;
long randomNum = System.currentTimeMillis();
int ran3 = (int) (randomNum%(max-min)+min);
System.out.println(ran3);
}
long型的毫秒数,取模之后即可得到所需范围内的随机数。
二,Scanner
从键盘获取不同变量的类型
步骤如下
1,导包: import java.util.Scanner;
2,Scanner的实例化 :Scanner scan = new Scanner(System.in);
3,调用Scanner类的相关方法(next()/ nextXxx()),来获取指定类型的变量;
例如:
import java.util.Scanner;
class Test{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("姓名");
String name = scan.next();
System.out.println(name);
}
}
三,三种基本流程结构
顺序结构
分支结构
循环结构
if简单语法结构
注意:if语句的大括号可以不写,但是如果不写,这个if只能控制一行代码。
if(判断条件){
//满足 判断条件(true),就执行此大括号里面的内容
}
if(判断条件){
//满足 判断条件(true),就执行此大括号里面的内容
}
注意:没有写在一起的if结构相互之间,不互斥
else if语法结构
if(判断条件A){
//满足 判断条件A(true),就执行此大括号里面的内容,后面的else-if不执行
}else if(判断条件B){
//满足 判断条件B(true),就执行此大括号里面的内容
}
switch语法结构
switch结构中的表达式,只能是如下六种类型之一
byte,short,char,int,枚举类型,String类型
switch(x){//x是 变量或者一个表达式:该值的类型,java规定的类型
case 变量的可能值1: 功能语句;break;
case 变量的可能值2: 功能语句;break;
case 变量的可能值3: 功能语句;break;
default :功能语句;break;(最后这个break可有可无)
注意:
1. case后面的值应该和变量的类型一致;
2. 执行顺序,是先依次找完所有的case值进行匹配,如果都不匹配才会执行default
3. case的顺序(包括default) 可以是任意的,但是建议先按照case的值的大小顺序排列,default放最后
4. break的作用,结束当前的这个switch结构
循环结构四个要素
初始化条件
循环条件-->是Boolean类型
循环体
迭代条件
for
for(初始A;条件判断B;循环后操作C){
//循环体C
}
//可以多层循环嵌套,外层循环控制层数,内层循环控制列数
while
while(条件(布尔类型的)){
// 循环体具体做什么事情
}
do while
do{
//循环体具体做什么事情
}while(条件)
//不常用
四,位运算符
<<左移
>>右移
>>>无符号右移
针对二进制位
说明:
1,正数左移右移那0补,负数左移右移那1补
无符号右移 无论正数负数全拿0补
且缺几个补几个
2,在一定范围内,每向左移一位,相当于 * 2;
在一定范围内,每向右移一位,相当于 / 2;
& 与
| 或
^ 异或
~ 取反
五,三种交换数值的方式
1引入一个量
int t = a;
a = b;
b = t;
2.
a = a+b;
b = a-b;
a = a-b;
3.使用位运算符
a = a ^ b;
b = a ^ b;
a = a ^ b;
加油!