220220

循环

switch语句

​
    //表达式可以是 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)
posted @ 2022-02-19 22:36  古月秦风  阅读(88)  评论(0)    收藏  举报