前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【蓝桥杯Java_C组·从零开始卷】第二节、if&switch(超级详细,适合入门强化学习,理论与实战双保险(2021年12月30日上午9点直播·视频发布B站)

【蓝桥杯Java_C组·从零开始卷】第二节、if&switch(超级详细,适合入门强化学习,理论与实战双保险(2021年12月30日上午9点直播·视频发布B站)

作者头像
红目香薰
发布2022-11-29 17:53:16
2000
发布2022-11-29 17:53:16
举报
文章被收录于专栏:CSDNToQQCode

目录

if语句的三种格式

单分支

简写语法

可能出现的异常

双分支

else if 是多分支件判断·与纯if两者区别

案例一、判断一个正整数的奇偶性

案例二、考试奖励

switch语句三种用法

switch 标准方式

标准demo·数字判断

String类型switch示例·jdk1.7以上才支持·jdk1.7以下需要使用枚举/hashCode

枚举判断

使用【hashCode】

巧用break

default作用

以下为JAVA_14的语法

switch - > 用法:

switch yield 用法:

石头剪刀布 测试代码:

if语句的三种格式

代码语言:javascript
复制
1. if语句
格式:if(判断语句){
    执行的程序
}

2.if...else语句
格式:if(判断语句){
     执行的程序1
} else{
     执行程序2
}

3.if...elseif...elseif.....语句
格式:if(判断语句1){
执行语句1
}else if(判断语句2){
执行语句2
}else if(判断语句3){
执行语句3
}.............

单分支

代码语言:javascript
复制
public class HelloWorld {
    public static void main(String[] args) {
         
        boolean b = true;
        //如果成立就打印yes
        if(b){
            System.out.println("yes");
        }
         
    }
}

简写语法

代码语言:javascript
复制
public class HelloWorld {
    public static void main(String[] args) {
         
        boolean b = false;
        //如果有多个表达式,必须用大括弧包括起来
        if(b){
            System.out.println("yes1");
            System.out.println("yes2");
            System.out.println("yes3");
        }
         
        //否则表达式2 3 无论b是否为true都会执行
         
        if(b)
            System.out.println("yes1");
            System.out.println("yes2");
            System.out.println("yes3");
             
        //如果只有一个表达式可以不用写括弧,看上去会简约一些
        if(b){
            System.out.println("yes1");
        }
         
        if(b)
            System.out.println("yes1");
         
    }
}

可能出现的异常

在第6行,if后面有一个分号; 而分号也是一个完整的表达式 如果b为true,会执行这个分号,然后打印yes 如果b为false,不会执行这个分号,然后打印yes 这样,看上去无论如何都会打印yes

代码语言:javascript
复制
public class HelloWorld {
    public static void main(String[] args) {
 
        boolean b = false;
         //注意分号位置
        if (b);
            System.out.println("yes");
    }
}

双分支

代码语言:javascript
复制
public class HelloWorld {
    public static void main(String[] args) {
 
        boolean b = false;
 
        if (b)
            System.out.println("yes");
        else
            System.out.println("no");
 
    }
}

else if 是多分支件判断·与纯if两者区别

代码语言:javascript
复制
public class HelloWorld {
    public static void main(String[] args) {
 
        //如果只使用 if,会执行4次判断
        int i = 2;
        if (i==1)
            System.out.println(1);
        if (i==2)
            System.out.println(2);
        if (i==3)
            System.out.println(3);
        if (i==4)
            System.out.println(4);
         
        //如果使用else if, 一旦在18行,判断成立, 20行和22行的判断就不会执行了,节约了运算资源
        if (i==1)
            System.out.println(1);
        else if (i==2)
            System.out.println(2);
        else if (i==3)
            System.out.println(3);
        else if (i==4)
            System.out.println(4);     
         
    }
}

案例一、判断一个正整数的奇偶性

这里面我加入了一个输入语句: 学过的就当我打的都是废话,要是刚接触java的学生不懂话,你就理解成,如果你要是想在CMD中输入整型变量就把这三行打上就行了。 注意包名:

代码语言:javascript
复制
import java.util.Scanner;

编码: 

代码语言:javascript
复制
import java.util.Scanner;
public class HelloWorld {
	public static void main (String[] args){
		System.out.println("输入一个正整数:");
		Scanner sc = new Scanner(System.in);
		int number = sc.nextInt();
		if(number % 2 == 0){
			System.out.println(number+"是整数");
		}else {
			System.out.println(number+"是奇数");
		}
	}
}

案例二、考试奖励

小明期末考试,爸爸承诺如果小明考了: 1、100 - 95分奖励小明山地自行车一辆; 2、94 - 90分奖励小明到游乐园玩一天; 3、89 - 80分奖励变形金刚一个; 4、80分一下小明被胖揍一顿;

代码语言:javascript
复制
import java.util.Scanner;
public class HelloWorld {
	public static void main (String[] args){
		System.out.println("输入小明的成绩:");
		Scanner sc = new Scanner(System.in);
		int number = sc.nextInt();
		if(number<0 || number >100){
			System.out.println("输入的成绩是错误的:");
		}else if(number >=95&&number<=100){
			System.out.println("小明获得山地自行车一辆");
		}else if(number >= 90&&number<=94){
			System.out.println("小明可以到游乐场去玩一次");
		}else if(number >= 80&&number<=89){
			System.out.println("小明获得变形金刚一个");
		}else{
			System.out.println("胖揍小明一顿");
		}
	}
}

嵌套if编码:

代码语言:javascript
复制
package Action;

import java.util.Scanner;

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("输入小明的成绩:");
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		int number = sc.nextInt();
		if (number > 0 && number <= 100) {
			if (number >= 95 && number <= 100) {
				System.out.println("小明获得山地自行车一辆");
			} else if (number >= 90 && number <= 94) {
				System.out.println("小明可以到游乐场去玩一次");
			} else if (number >= 80 && number <= 89) {
				System.out.println("小明获得变形金刚一个");
			} else {
				System.out.println("胖揍小明一顿");
			}
		} else {
			System.out.println("输入的成绩是错误的;");
		}
	}
}

switch语句三种用法

使用switch这个关键词, 我们可以很好的解决if…else 中多重选择的尴尬场面!

switch 标准方式

flag(标示)表示计算结果, 必须是整性, 字符串类型, 或者枚举类型。

代码语言:javascript
复制
switch (flag){undefined

​ case 0 : 语句一; break;

​ case 1: 语句二; break;

​ default: 语句n; break;

}

标准demo·数字判断

代码语言:javascript
复制
int flag = 3;
switch (flag){
    case 0: System.out.println("The number is 0" ); break;
    case 1: System.out.println("The number is 1" ); break;
    case 2: System.out.println("The number is 2" ); break;
    default: System.out.println("no have choose" ); break;
}

这是一个很标准的 switch 的用法, 有break, 还有 default ,在什么情况下跳出, 在什么情况下结束运行, 都很清楚的说明了, 但是朋友们在写这个代码的时候, 有可能会忘记加入break 或者 忘记 加入 default 这样的问题吧。

String类型switch示例·jdk1.7以上才支持·jdk1.7以下需要使用枚举/hashCode

代码语言:javascript
复制
package Action;

public class HelloWorld {
	     public  static  void  main(String args[]) {
	    	 String str =  "C" ;
	    	 switch  (str) {
	    	 case  "A" :
	    	      System.out.println( "A" );
	    	      break ;
	    	 case  "B" :
	    	      System.out.println( "B" );
	    	      break ;
	    	 case  "C" :
	    	      System.out.println( "C" );
	    	      break ;
	    	 default :
	    	      System.out.println( 0 );
	    	 }
	     }
}

枚举判断

代码语言:javascript
复制
package Action;

public class HelloWorld {
	  static  enum  E {
	         A, B, C, D
	     }
	 
	     public  static  void  main(String args[]) {
	         E e = E.B;
	         switch  (e) {
	         case  A:
	             System.out.println( "A" );
	             break ;
	         case  B:
	             System.out.println( "B" );
	             break ;
	         case  C:
	             System.out.println( "C" );
	             break ;
	         case  D:
	             System.out.println( "D" );
	             break ;
	         default :
	             System.out.println( 0 );
	         }
	     }
}

使用【hashCode】

可以看到hashCode与char是相同的,那么进行数字判断或者其它字符串判断都是一样的,支持硬件更换。

代码语言:javascript
复制
package Action;

public class HelloWorld {
	public static void main(String args[]) {
		String x = "2";
		System.out.println("hashCode:"+x.hashCode());
		System.out.println("char:"+(int) '2');
		int x_int = x.hashCode();
		switch (x_int) {
		case 50:
			System.out.println(2);
			break;
		case 51:
			System.out.println(3);
			break;
		default:
			System.out.println("default");
			break;
		}
	}
}

巧用break

输出2022年指定月份的最大天数·这里可以替换年份

代码语言:javascript
复制
package Action;

public class HelloWorld {
	     public  static  void  main(String args[]) {
	    	 int  year =  2022 ;
	    	 int  month =  2 ;
	    	 int  day =  0 ;
	    	 switch  (month) {
	    	 case  1 :
	    	 case  3 :
	    	 case  5 :
	    	 case  7 :
	    	 case  8 :
	    	 case  10 :
	    	 case  12 :
	    	      day =  31 ;
	    	      break ;
	    	 case  2 :
	    	     boolean b=(year%4==0&&year%100!=0)||year%400==0; 
	    		 day =  b?29:28 ;
	    	      break ;
	    	 case  4 :
	    	 case  6 :
	    	 case  9 :
	    	 case  11 :
	    	      day =  30 ;
	    	      break ;
	    	 }
	    	 System.out.println(day);
	     }
}

default作用

default在当前switch找不到匹配的case时执行。default并不是必须的。

代码语言:javascript
复制
package Action;

public class HelloWorld {
	     public  static  void  main(String args[]) {
	    	 int  x =  0 ;
	    	 switch  (x) {
	    	 case  1 :
	    	      System.out.println( 1 );
	    	 case  2 :
	    	      System.out.println( 2 );
	    	 default :
	    	      System.out.println( "default" );
	    	 }
	     }
}

以下为JAVA_14的语法

switch - > 用法:

使用 - > 方法更加简单, 就不用使用 break 命令, 保证只有一种路径会被执行!

用法如下:

代码语言:javascript
复制
int flag = 3;
switch (flag){
    case 0 ->  System.out.println("The number is 0" ); 
    case 1 ->  System.out.println("The number is 1" ); 
    case 2 ->  System.out.println("The number is 2" ); 
    default ->  System.out.println("no have choose" ); 
}

去掉了 break 和 冒号 取代的使用 箭头 ->

switch yield 用法:

看到 yield 的时候, 我就在想, 这一定要传值回来的函数。 用法 也很简单, 但是需要注意一点, 传值回去, 外部一定要定义个参数 用来接受这个值。

代码语言:javascript
复制
int flag = 2;
String ss;
ss = switch (flag){
      case 0 ->  "The number is 0" ;
      case 1 ->  "The number is 1" ;
      case 2 ->  {
             String c = "The number is 2";
             yield c;
            }
      default ->  "no have choose";
 };
System.out.println(ss);

这里来说, switch 作为了 一条语句, 所以末尾要加冒号, 其他用法相同, 下次如果条件很多的话, 就不用使用 if else ,可以考虑使用 switch 中的yield 返回参数方式了!

石头剪刀布 测试代码:

学了switch的这些用法, 我想应该写个程序来试试吧, 所以就写了个石头剪刀布的小游戏 

代码语言:javascript
复制
package Action;
import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) { ;
        int inp=0;      //定义输入的数值
        String sRnd=""; //随机数表示出拳
        int numWin=0;   //胜场
        int numLost=0;  //负场
        while (true) {
            boolean flag=true;  //立个flag备用
            int rnd = (int) (1 + Math.random() * 3);
            System.out.print("请输入【剪刀】、【石头】或【布】,输入【退出】结束游戏:");
            @SuppressWarnings("resource")
			Scanner sc = new Scanner(System.in);
            String sInp = sc.next();
            switch (sInp) {//输入文字转数字
                case "剪刀":
                    inp = 1;
                    break;
                case "石头":
                    inp = 2;
                    break;
                case "布":
                    inp = 3;
                    break;
                case "退出":
                    System.out.println("您已退出!\n ");
                    return;
                default:
                    System.out.println("输入有误! \n");//输入错误时flag为假
                    flag=false;
                    break;
            }
            switch (rnd) {//随机数转换成出拳
                case 1:
                    sRnd = "剪刀";
                    break;
                case 2:
                    sRnd = "石头";
                    break;
                case 3:
                    sRnd = "布";
                    break;
                default:
                    break;
            }
            if (flag==false){//前面立的flag为假了,跳过这次循环
                continue;
            } else if (inp == rnd) {
                System.out.println("平局! 电脑也是"+sRnd+" 胜"+numWin+"负"+numLost+"\n");
            }  else if (inp == 1 && rnd == 3 || inp == 2 && rnd == 1 || inp == 3 && rnd == 2) { //列出所有胜局情况
                System.out.println("你赢了!电脑是"+sRnd+" 胜"+ ++numWin+"负"+numLost+"\n");
            } else {
                System.out.println("电脑胜!电脑是 "+sRnd+" 胜"+numWin+"负"+ ++numLost+"\n");      //其他都是负局情况
            }
        }
}
        }

希望能对大家有所帮助。 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • if语句的三种格式
    • 单分支
      • 简写语法
      • 可能出现的异常
    • 双分支
      • else if 是多分支件判断·与纯if两者区别
        • 案例一、判断一个正整数的奇偶性
        • 案例二、考试奖励
    • switch语句三种用法
      • switch 标准方式
        • 标准demo·数字判断
        • String类型switch示例·jdk1.7以上才支持·jdk1.7以下需要使用枚举/hashCode
        • 枚举判断
        • 使用【hashCode】
        • 巧用break
        • default作用
      • 以下为JAVA_14的语法
        • switch - > 用法:
        • switch yield 用法:
      • 石头剪刀布 测试代码:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档