220220
//表达式可以是 byte short int char jdk1.5后加入枚举 jdk7.0后加入字符串String
switch(表达式){
//1.case给出的值不能重复
//2.case后只能接常量,不能接变量
case 值1 :
语句体1;
break;
case 值2 :
语句体2;
break;
case 值3 :
语句体3;
break;
...
//default又称缺省
default :
语句体 n+1;
break;
}
===========================
public class Demo1Switch{
public static void main(String[] args){
int week = 5;
switch(week){
case 1 :
System.out.println("星期一");
break;
case 2 :
System.out.println("星期二");
break;
case 3 :
System.out.println("星期三");
break;
case 4 :
System.out.println("星期四");
break;
case 5 :
System.out.println("星期五");
break;
case 6 :
System.out.println("星期六");
break;
case 7 :
System.out.println("星期日");
break;
default :
System.out.println("输入有误");
break;
}
}
}
switch语句的case穿透现象:
switch语句中,case省略了break语句,就会开始case穿透.当开始case穿透,后续的case不再具有匹配效果,内部语句一直执行,直到出现break,或者语句执行完毕
case穿透的使用场景:多个case语句体重复时
for循环
for(初始化语句; 条件判断语句; 条件控制语句){
循环体语句;
}
=================================
public class Demo1For{
public static void main(String[] args){
//1.循环中,控制循环的变量,可以作为逻辑组织到循环体中
// 2.条件控制语句既可以是++,也可以是--,+=...
for(int i = 1;i <= 5;i++){
System.out.println(i);
}
for(int i = 5;i >= 1;i--){
System.out.println(i);
}
}
}
===============================
//求1-100全部偶数及其和
//在需求中看到求和字样,就要定义一个求和变量 int sum = 0;
public class Demo2For{
public static void main(String[] args){
int i = 1;
int sum = 0;
for(;i <= 100;i++){
if(i % 2 == 0 ){
sum += i;
System.out.print(i + " ");
}
}
System.out.println("\n"+sum);
}
}
===============================
//输出全部水仙花数
for(int i = 100;i <= 999;i++){
//降位思想
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i /10 /10 %10;
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
System.out.println(i);
}
}
==============================
//1949是牛年,求1949至今全部牛年
public class Demo4For{
public static void main(String[] args){
for(int i = 1949;i <= 2022;i+=12){
System.out.println(i);
}
}
}
===============================
//水仙花数,两个一行
//System.out.print 打印后不换行
//System.out.println 打印后换行
public class Demo3For{
public static void main(String[] args){
//统计思想:借用count记录个数
int count = 0;
for(int i = 100;i <= 999;i++){
//降位思想
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i /10 /10 %10;
if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
System.out.print(i + " ");
count++;
//统计判断是否输出了两个数
if(count % 2 == 0){
System.out.println();
}
}
}
}
}
=======================
while循环
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
==========================
//0.1折多少次能到8844430
int count = 0;
double i = 0.1;
while(i <= 8844430){
i *= 2;
count++;
}
System.out.println(count);
==========================
//上例改成for语句
int count = 0;
for(double paper = 0.1;paper <= 8844430;paper *= 2){
count++;
}
System.out.println(count);
=========================
do...while循环
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
===========================
do...while:无论循环条件是否满足,都至少执行一次循环体
因为do...while循环是从上到下依次执行
三种循环的区别
区别 : for 和 while 先判断后执行
do...while 先执行后判断
for 和 while 区别 : 条件控制语句中的自增变量,for循环中循环结束,就不能再次访问了
while循环结束后,仍能继续使用该变量
三种循环使用场景 : 明确使用数,推荐用 for 循环;
不明确使用数,使用 while 循环;
do...while 循环,不建议使用
死循环
三种格式:其中 while 死循环最常用,命令提示符窗口输入 ctrl + c,可终止循环
for 循环
for(;;){
}
while 循环
while(true){
}
do...while 循环
do{
}while(true);
跳转控制语句(continue, break)
continue 用于循环中,{基于条件控制},跳过某次循环体内容的执行
break 用于循环中,{基于条件控制},终止循环体内容的执行
注意:必须是基于条件控制,否则 continue 没有意义;
break 具有就近原则,优先终止临近循环;且 break 只可以在循环和 switch 语句中使用
可以通过给循环起标号,让 break,continue 终止,跳过特定标号循环
=================================
//跳过偶数楼层
public class Continue{
public static void main(String[] args){
for(int i = 1;i <= 24;i++){
if(i%2==0){
continue;
}
System.out.println(i+"层到了");
}
}
}
=================================
//跳出死循环
import java.util.Scanner;
public class Break{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个1-100间的整数");
while(true){
int num = sc.nextInt();
if(num < 1 || num > 100){
System.out.println("请重新输入:");
}else{
System.out.println("输入数据为"+num);
break;
}
}
}
}
================================
Random
Random:产生一个随机数
==================================
//导包
import java.util.Random;
//创建对象
Random r = new Random();
//获取随机数
int num = r.nextInt(10);//范围[0,10)不包含10
================================
//[20,50]取10随机数
import java.util.Random;
public class DemoRandom{
public static void main(String[] args){
Random r = new Random();
for(int i = 1;i <= 10;i++){
int num = r.nextInt(31) +20;
System.out.println(num);
}
}
}
================================
[a,b] = random(b - a + 1)

浙公网安备 33010602011771号