java中switch的用法和逻辑运算符[通俗易懂]

java中switch的用法和逻辑运算符[通俗易懂]一、switch的用法常见用法如下:importjava.util.Scanner;publicclassA{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intscore=sc.nextInt();if(score>100&&score<0){Syst

大家好,又见面了,我是你们的朋友全栈君。

一、switch的用法

常见用法如下:

import java.util.Scanner;
public class A { 
   
    public static void main(String[] args) { 
   
        Scanner sc = new Scanner(System.in);
        int score = sc.nextInt();
        if (score > 100 && score < 0){ 
   
            System.out.println("输入错误");
            return ;
        }//作为一个程序员该有的思想
        
        switch(score / 10){ 
   
            case 10:
            case 9:
                System.out.println("优秀");
                break;
            case 8:
                System.out.println("良好");
                break;
            case 7:
                System.out.println("中等");
                break;
            case 6:
                System.out.println("及格");
                break;
            default :
                System.out.println("不及格");
                break;
        }
    }
}

注意:
1、switch后的变量支持int及以下(char,short,byte),String,Enum,必须要赋初值,也可以这样赋值switch(score = 0)

switch 不支持 long,是因为 switch 的设计初衷是对那些只有少数的几个值进行等值判断,如果值过于复杂,那么还是用 if 比较合适。


另一种说法
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long、float、double类型不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
注意:String类型是Java7开始支持的。


2、case之后的值必须和switch变量的类型一致

3、default的用法:在没有匹配到的情况或匹配到的代码块没有break,就会执行default代码;
通俗的讲,default是在没有 case 语句的值和变量值相等的时候执行;

4.switch后的变量还可以做运算。

break的常见应用情况:(在需要的时候别忘了加break)

1、case中两个或多个值进行一样的操作。

import java.util.Scanner;
public class B { 
   
    public static void main(String[] args) { 
   
        Scanner sc = new Scanner(System.in);
        int month = sc.nextInt();
        if (month < 1 && month > 12){ 
   
            System.out.println("输入错误");
        }
        switch (month){ 
   
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println(31);
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println(30);
                break;
            case 2:
                System.out.println(29);
                break;
            default:
                System.out.println("输入错误");
        }
    }
}

2、case语句没有break时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。

public int getValue(int i) { 
   
         int result = 0;
         switch (i) { 
   
            case 1:
                result = result + i;
            case 2:
                result = result + i * 2;
            case 3:
                result = result + i * 3;
        }
        return result;
 }

3、如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。(掉过坑)
案例如下:

public int getValue(int i) { 
   
         int result = 0;
         switch (i) { 
   
            case 1:
                result = result + i;
            case 2:
                result = result + i * 2;
                break;
            case 3:
                result = result + i * 3;
        }
        return result;

翻车现场:

public class Demo { 
   
    public static void main(String args[]) { 
   
        char c = 'A' ;
        int num = 10 ;
        switch(c) { 
   
            case 'B' :
                num ++ ;
            case 'A' :
                num ++ ;
            case 'Y' :
                num ++ ;
                break ;
            default :
                num -- ;
        }
        System.out.println(num) ;
    }
}

当时把这条情况给忘了,想着匹配’A’之后,向下执行default语句,结果为10;但是现实是残酷的?,匹配到A之后,执行下面的case语句,结果为12

二、Java中逻辑运算符

&和&&:当且仅当 a、b 都为 true 时,结果为 true ;

| 和 || : 当且仅当 a、b 都为 false 时,结果为 false ;

^ : a 与 b 相异时,结果为 true ;

注意:逻辑运算符操作的都是boolean类型的变量,而且结果也是boolean类型。
java中switch的用法和逻辑运算符[通俗易懂]

&、| 与 &&、|| 的区别:& 和 | 左右两边的式子一定会执行,&& 和 || 只要左边的式子能得出结果,右边的式子就不会执行。(视情况而定)

java中switch的用法和逻辑运算符[通俗易懂]
参考资料java中的逻辑运算符& 、&& 、| 、||、!、^

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156412.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytest skipif_pytest断言方法

    pytest skipif_pytest断言方法前言pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能Skip和xfail:处理那些不会成功的测试用例你可以对那些在某些特定平台上不能运行的测试用

    2022年7月29日
    9
  • shell if条件判断_shell if 判断

    shell if条件判断_shell if 判断,

    2022年8月18日
    8
  • java bean的作用_java bean的作用是什么[通俗易懂]

    java bean的作用_java bean的作用是什么[通俗易懂]JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java类可以通过自省机制(反射机制)发现和操作这些JavaBean的属性。javabean的作用JavaBean的一些具体的主要设计…

    2022年7月7日
    30
  • Linux修改用户名后无法登入系统(乌班图)

    Linux修改用户名后无法登入系统(乌班图)linux修改用户名以及修改用户名无法登入系统(乌班图)

    2025年11月25日
    4
  • springboot实现拦截器_spring拦截器和过滤器

    springboot实现拦截器_spring拦截器和过滤器集成拦截器登录验证为例添加拦截器public class LoginInterceptor implements HandlerInterceptor { private Logger log = LoggerFactory.getLogger(getClass()); //Controller逻辑执行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletRe

    2022年8月9日
    3
  • originpro 2021 附安装教程

    originpro 2021 附安装教程近日新推出了origin系列的最新版本:origin2021,是一款非常实用的科学绘图与数据分析软件,并且该版本可以和2018——2021版本共享设置,若你拥有这些版本中的任何一个,则只需安装并运行新版本即可。不仅如此,它为了带给用户最佳的使用体验,进行了全方面的新增和优化,现如今能够使用新的颜色管理器创建自己的颜色列表或调色板,其中包括通过颜色选择和颜色插值,还在工作表上添加了新的公式栏,轻松编辑复杂的公式,具有调整公式栏字体大小的选项,以便于阅读,而且Origin中的嵌入式Python环境也得到了极大的

    2022年6月11日
    1.9K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号