算术 ++ --、逻辑 && & || |、比较 ==、三元 、赋值 =
int i = 1;
i++;
j = i++; //j=2 i=3
syso(--j+"-----"+i++) //1 3
if(){
}
if(){
}else{
}
if(){
}else if(){
}else if(){
}else{
}
//支持byte、short、int
//支持char
//支持枚举
//从jdk8开始 支持String字符串类型
switch(表达式){
}
循环目的:实现某一块代码多次重复执行。
for(表达式一;表达式二;表达式三){
//循环体
}
示例:
/*
* 需求:在控制台打印出所有的水仙花数。
* 水仙花数: 是一个三位数,
* 水仙花数的个位、十位、百位数字的立方之和等于原数。
*/
for(int i=100;i<1000;i++) {
int g = i%10;
int b = i/100;//121
int s = i/10%10;
if(g*g*g + b*b*b + s*s*s == i) {
System.out.print(i+" ");
}
}
/*
* 1. 需求:数7游戏。从1到100(不含100),
* 如果数是7的倍数或者包含7输出“过”,否则输出数字本身。
*/
for(int i=1;i<100;i++) { //65
//7的倍数 i%7==0
//包含7 个位i%10==7 十位i/10==7
if(i%7==0 || i%10==7 || i/10==7) {
System.out.print("过 ");
}else {
System.out.print(i+" ");
}
}
for(表达式1;表达式2;表达式3){
循环体
}
代码:
public static void main(String[] args) {
for( ; ; ) {
System.out.println("hello world");
}
System.out.println("end");//这行代码永远执行不到
}
上面的示例,没有任何语句控制循环的结束。所以会无限打印hello world,导致循环后面的代码永远执行不到。
注意:如果程序中出现死循环,Eclipse会报错,不允许你执行。
代码:
public static void main(String[] args) {
for(int i = 0 ; i != 10 ; i += 3 ) {
System.out.println("hello world");
}
System.out.println("end");//这行代码永远执行不到
}
上面的示例,虽然表达式完整,但是 i != 10会永远为真,因此也是一个死循环。导致for循环后面的代码无法执行
代码:
// int i ;
// for(i=1;;) {
//
// }
// int i = 1;
// for(;;) {
// System.out.println(i);
// }
// for(int i = 1;i < 10;i--) {
// System.out.println(i);
// }
int i = 1;
for(;i < 10;) { //不会发生死循环
System.out.println(i++);
}
random.nextInt(3); // 得到的是一个 [0,3)的数值
随机数的规律:要想产生一个[min, max]之间的随机数。
int num = random.nextInt(max - min + 1) + min;
随机数的规律:要想产生一个[min, max) 之间的随机数。
int num = random.nextInt(max - min) + min;
随机数范围
[0,10]
[0,10)
[10,15]
(10,15]
Random r = new Random();
//生成boolean类型随机数
boolean flag = r.nextBoolean();
//生成int范围的随机数
int num1 = r.nextInt();
//生成double类型的随机数
double d1 = r.nextDouble();
//指定范围 0<=num<3
int num2 = r.nextInt(3);//[0,3)
//生成一个随机数 0<=num<=3
int num3 = r.nextInt(4);
//生成一个随机数 5<=num<10 //5 [0-5)
//r.nextInt(10-5)+5 r.nextInt(max-min)+min
int num5 = r.nextInt(5)+5;
//生成一个[15-20)之间的随机数
// for(int i=0;i<10;i++) {
// int num6 = r.nextInt(20-15)+15;
// System.out.println(num6);
// }
//生成一个[15-20]之间的随机数 r.nextInt(max-min+1)+min
for(int i=0;i<10;i++) {
System.out.print(r.nextInt(20-15+1)+15+" ");
}
示例:
//产生5个[10, 80]之间的随机数,输出产生的数,并求出最大的随机数。
//记录最大值出现的下标(第一次循环 ,下标为0,第二次为1....)
Random r = new Random();
//最大值出现的索引下标
int maxIndex = 0;
int max = 0;
int min = 80;
int sum = 0;
for(int i=0;i<5;i++) {
int num = r.nextInt(71)+10;
System.out.print(num+" ");
maxIndex = (num>max) ? i : maxIndex;
max = num>max ? num : max;
min = num<min ? num : min;
sum += num;
}
System.out.println("最大值是:"+max +" 最小值是:"+min +" 总和:"+sum);
System.out.println("最大值的索引下标是:"+maxIndex);