我是靠谱客的博主 飞快外套,最近开发中收集的这篇文章主要介绍JAVA10_31学习总结(switch,for,while,dowhile)今日内容,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今日内容

1.if...else...和三元运算符的区别

面试题:

if和三元运算符的区别
    共同:
        if...else..和三元运算符都是针对两种情况进行判断,都有表达式
    不同:
        if...else..
            可以表达的范围很大,不仅可以用运算符达成目的,还可以用表达式来完成
        三元运算符
            表达的范围不如if,不能在结构中加入表达式
    结论:if...else...可以表达,可以做到的,三元运算符做不到
        三元运算符可以做到的,if...else...都可以做到!
import java.util.Scanner;
class ifDemo{
    public static void main(String[] args){
        //键盘输入
        Scanner sc = new Scanner(System.in);
        //提示输入一个数
        System.out.print("请输入一个数:");
        int num = sc.nextInt();
        //判断这个数据是否为偶数
        if(num%2 == 0){     //num模2,取余数,为0就是偶数,不为零就是奇数
            System.out.println("这是一个偶数!");
        }else{
            System.out.println("这是一个奇数!");
        }
    }
}

2.流程控制语句switch

选择结构语句switch
    格式
        switch(变量名){
            case 值1:
                表达式1;
                break;
            case 值2:
                表达式2;
                break;
                ...
                ...
            default:
                表达式n;
                break;
        }
    执行流程
        switch后面的变量名(变量值)需要和case值匹配
            匹配到哪个case值,就进行那个表达式,break结束语句
                若没有匹配的case值,则执行default表达式,break结束语句

面试题:

switch语句后面的这个变量名可以是什么样的数据类型?
    switch后面的变量名(变量值)可以是:
        byte char short int
    jdk7以后可以是String类型

switch注意事项

    1)switch后面的变量值可以是byte int short char,但是case后面的值只能是常量(Java是强类型语言,语言结构严谨)
    2)switch中,case值一旦匹配,完成对应表达式后一定加break结束语句,如果没加就会造成case"穿透",直到遇见break为止
    3)switch语句中的default语句在什么位置都可以
            ---末尾--->可以不带break结束语句,因为代码由上而下运行,自然到结尾结束
            ---首段--->一定要带break结束语句,如果不带,当没有匹配的case值时,直接执行default表达式,也会造成穿透
    4)switch语句结束条件
            ---break结束语句--->case后的,default后的
            ---语句自然运行到末尾结束
//键盘录入一个值(1-7),判断是星期几?
import java.util.Scanner;
class switchDemo{
    public static void main(String[] args){
        //键盘输入
        Scanner sc = new Scanner(System.in);
        //提示输入一个值
        System.out.print("请输入今天是是星期几:");
        int num = sc.nextInt();
        //switch语句进行选择判断
        switch(num){
            //case值后加的是:
            case 1:
                System.out.println("今天是星期一!");
                //一定要加break结束,否则会造成case穿透
                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("请输入有效的数值!");
                //因为default在末尾,所以这里break可加可不加
                break;
        }
    }
}

case穿透反面案例

/*
    键盘录入一个月份的值,判断季节
            3,4,5  春季
            6,7,8  夏季
            9,10,11 秋季
            12,1,2 冬季
    
        case穿透反面案例  
*/
import java.util.Scanner;
class switchTest1{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个值:");
        int num = sc.nextInt();
        //case穿透反面案例
        switch(num){
            default:
                System.out.println("请输入有效值!");
                //break;
            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;
            case 8:
                System.out.println("夏季!");
                //break;
            case 9:
                System.out.println("秋季!");
                //break;
            case 10:
                System.out.println("秋季!");
                //break;
            case 11:
                System.out.println("秋季!");
                //break;
            case 12:
                System.out.println("冬季!");
                //break;
        }
    }
}

 

case穿透正面案例

/*
    键盘录入一个月份的值,判断季节
            3,4,5  春季
            6,7,8  夏季
            9,10,11 秋季
            12,1,2 冬季
    
        case穿透正面案例  
        大量节约空间,减少代码冗余
*/
import java.util.Scanner;
class switchTest2{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个值:");
        int num = sc.nextInt();
        //case穿透正面案例
        switch(num){
            default:
                System.out.println("请输入有效值!");
                break;
            case 1:
                //break;
            case 2:
                //break;
            case 12:
                System.out.println("冬季!");
                break;
            case 3:
                //break;
            case 4:
                //break;
            case 5:
                System.out.println("春季!");
                break;
            case 6:
                //break;
            case 7:
                //break;
            case 8:
                System.out.println("夏季!");
                break;
            case 9:
                //break;
            case 10:
                //break;
            case 11:
                System.out.println("秋季!");
                break;
        }
    }
}

3.循环结构语句

3.1for循环语句

for循环语句结构
    格式
        for(初始化表达式;条件表达式;控制语句){
            循环体语句;
        }
    执行流程
        当需要进行循环时(有次数),用到for循环
            初始化表达式定义一个初始变量
                根据条件表达式判断值是否符合条件
                        ---符合条件--->执行循环体语句--->进行控制语句,在判断条件是否符合,进行下一轮循环
                        ---不符合条件--->跳出循环--->结束或者继续进行下面的代码
                    控制语句防止程序进入死循环
水仙花数(三位数)
    每一位的立方相加等于这个数本身
//输出并统计所有水仙花数
import java.util.Scanner;
class forDemo{
    public static void main(String[] args){
        //统计数据初值
        int cont = 0 ;
        //遍历[100-1000)
        for(int m = 100;m<1000;m++){
            //每个数位置上的数字怎么获取
            //百位
            int a = m/10/10 % 10 ;
            //十位
            int b = m/10 % 10 ;
            //个位
            int c = m % 10 ;
            //水仙花数: m = a*a*a + b*b*b + c*c*c
            if(m == a*a*a + b*b*b + c*c*c){
                //每循环一次记录一次
                cont++;
                System.out.println("水仙花数是:"+m);
            }   
        } 
        System.out.println("水仙花数的个数是:"+cont);
    }
}

3.2while循环语句

while循环语句结构
    格式
        初始化语句;
        while(条件表达式){
            循环体语句;
            控制体语句;
        }
    执行流程
        初始化语句先赋值
            根据条件表达式判断条件
                    ---符合条件--->进入循环体语句--->控制体语句,再根据条件表达式判断,没有控制体语句,死循环
                    ---不符合--->跳过循环,运行后面代码
                

class whileDemo{
    public static void main(String[] args){
        //赋初值
        int m = 100 ;
        //统计赋初值
        int cont = 0 ;
        while(m<1000){
            //循环体语句
            int a = m/10/10 % 10 ;
            int b = m/10 % 10 ;
            int c = m % 10 ;
            if( m == a*a*a + b*b*b + c*c*c ){
                //统计数
                cont++ ;
                System.out.println("水仙花数是:"+m);
            }
            m++;
        }
            System.out.println("水仙花数个数是:"+cont);
    }
}

面试题:

for和while循环有什么区别?
    1)格式上的不同
        for循环把所有写在一起了,while循环分开写了
    2)是否明确了循环次数(不绝对)
        在开发中for循环使用最多
            如果明确了循环次数--->使用for循环
            没有循环次数限制--->使用while循环
    3)从内存角度
        for循环体内的一切变量出了循环体就被释放,合理利用内存
        while不会

3.3do..while循环语句

do...while循环语句结构
    格式
        初始化语句;
            do{
                循环体语句;
                控制体语句;
            }while(条件表达式) ;
    执行流程
        初始化语句赋值
        判断条件--->成立--->执行循环体--->控制体语句--->再次判断....
    特点
        和for,while最大的区别就是
                即使条件不成立,循环体至少执行一次!

4.死循环结构

两种死循环格式:
            for(;;){
                循环体语句;
            }
            
            while(true){        //推荐这个格式
                循环体语句;
            }
        循环条件是一个恒定条件,永远满足循环条件就会死循环
            
    死循环的格式最终里面完成某个逻辑,当达到某种条件结束循环,会用到一个跳转控制语句 break(中断,结束) ;
    产生一个[0-1)之间的随机数 通过刚才的Math.random()
/*
    想要完成一个猜数字游戏:使用循环来操作,不断的键盘录入数据,进行猜
    大了,提示大了,
    小了,提示小了
    如果一致,恭喜猜中了
*/
import java.util.Scanner;
class DieLoopDemo{
    public static void main(String[] args){
        //生成一个随机数,默认double,加强转
        //不能写进循环体内,不然永远无法猜出数!
        int num = (int)(Math.random()*100+1) ;
        //记录猜的次数
        int cont = 0 ;
        while(true){
            //记录次数
            cont++;
            //从键盘输入要猜的数
            Scanner sc = new Scanner(System.in);
            //提示要输入数字
            System.out.print("请输入要猜的数字");
            int m = sc.nextInt();
            //判断输入数和生成数
            if(m>num){
                System.out.println("大了,小一点!");
            }else if(m<num){
                System.out.println("小了,大一点!");
            }else{
                System.out.println("猜对了!");
                //猜对之后中断循环
                break;
            }
        }
            System.out.println("一共猜了"+cont+"次");
    }
}
​

5.for循环嵌套

for循环的嵌套
        for循环的循环体语句里面是for循环
        
        for(初始化语句1;条件表达式1;控制体语句1){
            
            for(初始化语句2;条件表达式2;控制体语句2){
                循环体语句.....
            }
        }
//九九乘法表
class forforTest{
    public static void main(String[] args){
            //为了保证有数据 数据从1开始
            for(int x = 1 ; x <=9 ; x ++){//行数
                for(int y = 1 ; y <=x ; y ++){//列数,在变化
                    //循环体语句
                    //转义字符: "t" 制表符 类似tab键的效果
                    System.out.print(x +"*"+y+"="+(y*x)+"t") ;
                }
                System.out.println() ;
            }
    }
}

最后

以上就是飞快外套为你收集整理的JAVA10_31学习总结(switch,for,while,dowhile)今日内容的全部内容,希望文章能够帮你解决JAVA10_31学习总结(switch,for,while,dowhile)今日内容所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部