JAVA-基础③判断

这篇博客详细介绍了Java编程中的分支结构,包括单分支、双分支、多分支和嵌套分支的使用方法,以及如何通过if-else和switch进行条件判断。示例代码展示了如何根据学生成绩给予奖励、判断公平性和参赛者资格。此外,还提到了字符串equals方法的正确使用以及局部变量的作用范围。
摘要由CSDN通过智能技术生成

1、 分支(选择)结构

1.1、 语法

1.1.1、 单分支

 

  //获取判断条件的逻辑 start
  Scanner input = new Scanner(System.in);
  System.out.println("请输入i同学的Java成绩");
  int iJavaS=input.nextInt();
  System.out.println("请输入i同学的音乐成绩");
  int iMusicS=input.nextInt();
  //获取判断条件逻辑 end
  ​
  //给一个初始默认值
  String sReturn = "老师不奖励他";
  ​
  //根据逻辑:
  //i同学Java成绩大于90分,并且音乐成绩大于80分时,
  //i同学Java成绩等于100分,并且音乐成绩大于70分时,
  //老师奖励他
  //进行if语句编写
  if((iJavaS>90 && iMusicS>80)||(iJavaS==100 && iMusicS>70)){
      sReturn = "老师奖励被咬了一口的apple6"
  }
  ​
  //输出结果
  System.out.println(sReturn);

1.1.2、 双分支

  
//获取判断条件的逻辑 start
  Scanner input = new Scanner(System.in);
  System.out.println("请问六子吃了几碗粉:");
  int num1=input.nextInt();
  System.out.println("请问六子付了几碗粉钱:");
  int num2=input.nextInt();
  //获取判断条件逻辑 end
  ​
  ​
  //进行判断:
  if(num1==nmu2){
      //满足条件
      System.out.println("这就是公平!!!")   
  }
  else{
      //不满足条件 
      System.out.println("这不是欺负老实人么?")
  }

 

判断,如果满足条件,则进入if的代码块。不满足条件,进入else代码块

1.1.3、 多分支

  
  //获取判断条件的逻辑 start
  Scanner input = new Scanner(System.in);
  System.out.println("请输入你的成绩:");
  int i=input.nextInt();
  String sReturn = ""
  //获取判断条件逻辑 end
  ​
  ​
  //进行判断:
  if(i>80){
      //如果你的成绩比80分高,结果就是良好
      sReturn = "良好"
  }else if(i>=60){
      //如果你的成绩不比80分高,我们看看你是否比60分高
      //如果你60分高,那么你就是中等
      sReturn = "中等"
  }else{
      //如果你都不满足上面的条件(仅比60分高,或者又不比60分高)那么你就是中等
      sReturn = "差"
  }
   System.out.println("你本次的结果为:"+sReturn);


  
  package com.kgc.day03
  ​
  import java.util.Scanner;
  ​
  public class Test06{
      
      pulbic static void main(String[] args){
          Srting name="",sex="";  //参加者的名称,参加者的性别
          int score=999;  //参赛者的成绩
          Scanner input = new Scanner(System.in);
  ​
          System.out.println("请输入参加者的名称:");
          name=input.next();
          System.out.println();
          System.out.println("请输入参加者的性别:");
          sex=input.next();
          System.out.println();
          System.out.println("请输入参加者的跑步成绩:");
          score=input.next();
          System.out.println();
  ​
          if(socre>10);{
              System.out.println("很遗憾你无缘参加决赛"):
          }else{
              if("男".equals(sex)){
                  System.out.println("恭喜你"+name+"进入男生组决赛");
              }else{
                  System.out.println("恭喜你"+name+"进入女生组决赛");
              }
          }
      }
  }
 

1.1.4、 嵌套分支

  
  //由于if(){}else{}的逻辑如下
  //if(true){
      代码……
  //}else{
      代码……
  //}
  //而且if(){}else{}本质也是代码,所以他自然可以嵌套在其他的if(){}else{}当中
  ​
  //如下实例:
  String sReturn="";
  if(socre>10);{
      sReturn=name+"很遗憾你无缘参加决赛";
  }else{
      if("男".equals(sex)){
          sReturn = "恭喜你"+name+"进入男生组决赛";
      }else{
          sReturn = "恭喜你"+name+"进入女生组决赛";
      }
  }
  System.out.println(sReturn);

2、switch

Scanner input = new Scanner(System.in);
  System.out.println("请输入你获得的名次");
  int mingCi=input.nextInt();
  switch(mingCi){
          case 1:
              System.out.println("恭喜你获得第一名");
              //如果不使用break跳出,会继续执行之后每一个case的选项。
              break;
          case 2:
              System.out.println("恭喜你获得第二名");
              break;
          default:
              System.out.println("谢谢参与");
  }
  //关于default
  //default的位置是存在讲究的,一般情况下,我们会将default放在switch的最后一块
  //如果所有的case都匹配不上,则会进入匹配default当中
  //如果进入了某个case块(包括default)那么,当没有遇到break的时候
  //会将该位置之后的所有case块(包括default)按照顺序执行
  ​
  //比如你的代码如下
  switch(mingCi){
          case 1:
              System.out.println("恭喜你获得第一名");
              //如果不使用break跳出,会继续执行之后每一个case的选项。
              //break;
          default:
              System.out.println("谢谢参与");
          case 2:
              System.out.println("恭喜你获得第二名");
              //break;
  }
  //当mingCi为1的时候,会执行顺序执行 24 28 30行代码
  //当mingCi为2的时候,只会执行30行代码(因为有case匹配,所以不进default)
  //当mingCi为3的时候,会执行顺序执行28 30(因为所有的case都匹配不上,所以进入default,并且由于不存在break,那么28行即之后的30行会被执行。

给一个不需要break场景的例子

  Scanner input = new Scanner(System.in);
  int iCount=0;
  System.out.println("每过1个小时给计时器+1");
  System.out.println("现在是几点");
  String time=input.next();
  switch(time){
      case "20:00":
          iCount++;
      case "21:00":
          iCount++;
      case "22:00":
          iCount++;
      case "23:00":
          iCount++;
  }
  System.out.println("过"+iCount+"小时是24:00");

3、String的equals方法

对于字符串的比较我们不使用==而是使用equals方法调用,比如

  String str="str";
  if("str".equals(str)){
      //执行代码
  }

当我们对于一个字符串对象和一个字符串比较时,如上图所示str对象和”str“字符串比较

我们一定要将字符串写在前面,否则当str对象为null(空)的时候就会抛出

NullPointerException——空指针异常

4、 局部变量

  //当我们声明的变量在某块代码中,而不是全局,
  //此时该变量为局部变量,在声明的代码意外的地方,
  //时无法调用或修改变量的
  //例如:
  public static void main(String[] args){
      int i =1;
      if(i>10){
          //此时的i为if代码块中的局部变量,无法再if模块以外使用(作用范围在7-8行中)
          int j=2;
      }
      //由于变量i实在main方法中声明,所以所有main方法中的代码都可以使用/修改i变量
      System.out.println(i);
      //由于变量j是在main方法中声明,所以j只能作用在if代码块中(8-9行)在15行打印会直接报错
      //报j方法的
      //System.out.println(j);
  }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值