Java小白入门教程(5)——分支语句

提纲:

1、程序的流程结构
2、选择结构
3、if语句
4、switch-case语句
5、作业

一、程序的流程结构

程序的流程结构

程序的流程结构:
A:顺序结构:默认的,从上向下,逐行的执行。
B:选择结构:条件满足,某些代码才会执行。
C:循环结构:条件满足,某些代码会反复多次的执行。直到条件不满足。

 

选择结构:条件满足,某些代码才会执行。靠分支语句来实现。

二、选择结构


2.1 if语句

2.1.1、最基本的if语句

语法结构:

​
if(条件:boolean){
  //条件成立,执行此处的代码
}

 

执行流程:

示例代码:

public class Test1BaseIf 
{
  public static void main(String[] args) 
  {
    /*
    if语句的语法
    if(条件:boolean){
      //条件成立,执行此处的代码
    }
​
    if(true){
      //才会执行
    }
    */
    //例1.判断一个成绩,如果是100,打印一句恭喜话
    double score = 98.0;
​
    if(score == 100.0){
      //条件成立,执行此处的代码
      System.out.println("恭喜你啊,满分,好厉害。。。");
    }
​
​
​
    //2.练习题1:给定一个年龄,如果大于18岁,打印出,你已经是个大人了,要对自己负责
    int age = 24;
    if(age >= 18){
      System.out.println(age + "岁了,你已经是个大人了,要对自己负责");
    }
    System.out.println("main...over....");
  }
}
​

2.1.2、if...else语句

语法格式:

if(条件:boolean){
  //条件成立,执行此处的代码
}else{
  //条件不成立,执行此处的代码
}

实现二者必选其一。

示例代码:

import java.util.Scanner;
public class Test2IfElse 
{
  public static void main(String[] args) 
  {
    /*
    if ... else的语法
    if(条件表达式:boolean){
      //条件成立,执行此处的代码
      
    }else{
      //条件不成立,执行此处的代码
    }
    */
    //例1:给定一个成绩,如果大于等于60分,打印及格, 否则打印不及格
​
    int score = 66;
​
    if(score >= 60){
      //条件成立,执行此处的代码
      System.out.println("及格啦。。");
      
    }else{
      //条件不成立,执行此处的代码
      System.out.println("不及格了,呜呜。。");
    }
​
    //课堂练习1:判断成绩是否满分,如果满分,奖励一部手机,否则代码抄100遍。
​
  
    if(score == 100){
      System.out.println("满分啊,好厉害,奖励一部手机,啦啦啦。。");
    }else{
      System.out.println("考试没打100分,那么代码抄写100遍。。");
    }
​
​
​
    //课堂练习2:给定一个性别,如果是男,就去男厕所,否则去女厕所。。
    /*
    思路:
    step1:有个性别这个变量
      boolean true false
      int 1 0 
      char 男 女
      String 男生 女生
    step2:ifelse语句来实现
      判断条件:
​
​
​
    在比较数值上:
      基本类型:使用==这个运算符进行比较数值,是否相等
        byte,short,int,long,float,double,char,boolean
​
      引用类型:使用equals()来比较
        String
    */
    
    char sex = '猴';
    if(sex == '男'){
      System.out.println("你去男厕所吧。。");
    }else{
      System.out.println("去女厕所啊。。。");
    }
    
​
    /*
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你的性别:");
​
    String sex2 = sc.next();//男生,null
​
    if("男生".equals(sex2)){//String类型,比较是否相等,使用equals()。
      System.out.println("你去男厕所吧。。");
    }else{
      System.out.println("去女厕所啊。。。");
    }
    */
​
    System.out.println("main 。。over。。。");
  }
}
​


2.1.3、多个条件

语法规则:

if(条件1){
  //条件1满足,执行此处的代码
}else if(条件2){
  //条件1不满足,条件2满足,执行此处的代码
}else if(条件3){
  //条件1、2都不满足,条件3满足,执行此处的代码。
}。。。
else{
​
}

流程图:

示例代码:

public class Test3MultiIf 
{
  public static void main(String[] args) 
  {
    /*
    多个条件判断:
    if(条件1){
      //条件1满足,就执行此处的代码。执行完毕,整个if就结束了
    }else if(条件2){
      //条件1不满足,条件2满足,才会执行此处丶代码。
    }else if(条件3){
      //条件1不满足,条件2不满足,条件3满足,执行此处的代码。。
    }。。
    else{
      //之前的条件都不成立,那么执行此处的代码。。
    }
​
    */
    //去厕所:是男,去男厕所,是女,去女厕所,否则去公共厕所。。
    char sex = '猴';
​
    if(sex == '男'){
​
      System.out.println("性别是:" + sex + ",去男厕所。。。");
    }else if(sex == '女'){
​
      System.out.println("性别是:" + sex + ",去女厕所。。。");
​
    }else{
      System.out.println("我也不知道啦,你去公共厕所吧。。");
    }
​
​
    //练习1:给一个数字,正数,负数,零。
    int num = 0;
    if(num > 0){
      System.out.println(num + ",是正数。。");
    }else if(num < 0){
      System.out.println(num + ",是负数。。");
    }else {
      System.out.println(num +",是零啊。。");
    }
    
​
    //练习2:
    /*
    给定一个成绩:
    [0,59],不及格,买苹果
        0 < socre
        score < 59
​
    [60,69],及格,奖励苹果皮儿
    [70,79],中等,奖励个苹果
    [80,89],良好,奖励苹果手机
    [90,100],优秀,奖励个苹果本
    */
​
​
​
    int score = 101;
    if(score < 0 ){//[负数]
      System.out.println("成绩不能为负数。。");
    }else if(  score < 60 ){//score >= 0 [0,59]
      System.out.println("不及格,惩罚你给大家买苹果。。");
  
    }else if(  score < 70 ){//socre >=60  [60,69]
      System.out.println("及格,奖励苹果皮儿");
      
    }else if( score< 80){//score >= 70
      System.out.println("中等,奖励一个大苹果");
      
    }else if( score < 90){//score >= 80
      System.out.println("良好,奖励苹果手机");
      
    }else if( score <= 100){//score >=90
      System.out.println("优秀,奖励个苹果本");
    }else{
      System.out.println("满分100,成绩有误。。");
    }
​
​
​
​
    //思路2
    if(score <0 || score > 100){//负数,超过了100分。都是非法成绩
      System.out.println("成绩有误");
    }else if(score >= 90){
      System.out.println("优秀,你是个秀儿。。");
    }else if(score >= 80){
      System.out.println("良好。。");
    }else if(score >= 70){
      System.out.println("中等。。");
    }else if(score >= 60){
      System.out.println("及格");
    }else{
      System.out.println("不及格");
    }
    
​
​
    System.out.println("Hello World!");
  }
}
​


2.1.4、if语句的嵌套

语法结构

if(外层条件){
  if(内层条件){
  
  }else{
  
  }
}else{
​
}

示例代码:

class Test4If 
{
  public static void main(String[] args) 
  {
    /*
    if(条件1){
      if(条件2){
        //..
      }else{
        //...
        代码块2;
      }
​
    }else{
    
    }
    */
    /*
    给定一个年龄和性别,判断是否可以结婚。
    男:不能小于22周岁
    女:不能小于20周岁
    
    */
    char sex = '女';
    int age = 18;
​
    if(sex == '男'){
      //此处判断男生是否可以结婚。。
      if(age >= 22){
        System.out.println("可以娶媳妇啦。。。好开心。。");
      }else{
        System.out.println("还小呢,再等等。。");
      }
    }else if(sex == '女'){
      //此处判断女生是否可以结婚。。
      if(age >= 20){
        System.out.println("可以找婆家了。。");
      }else{
        System.out.println("太小了。。");
      }
​
    }else{
      System.out.println("搞不清楚性别,不能结婚。。");
    }
    
​
​
    System.out.println("Hello World!");
​
​
    int num = 10;
    if(num > 0){
      System.out.println(num + ",是正数");
    }
    //  System.out.println("我也是条件满足,才能输出的。。");
    
  }
}
​
说明:如果说if语句里只有一行代码,那么{}可以省略不写。但是不建议。


2.2 switch-case语句

switch也是实现分支语句。语法结构如下:

switch(变量/表达式){
case 数值1:分支1;break;
case 数值2:分支2;break;
case 数值3:分支3;break;
​
default:最后一个分支;
}

注意点:

1、case后的数值,不能重复。

2、case是无序的,先写后写都可以,关键是是否能够匹配上switch作用的变量。

3、switch作用的变量类型:short,byte,char,int,String。

4、default语句是可选的。

5、某个case匹配上后,如果该分支中没有break,那么后续的case都不再匹配,直接执行。一直到遇到break位置。

示例代码:

public class Test1Switch 
{
  public static void main(String[] args) 
  {
    /*
    switch语句:
    语法结构:
    switch(变量/表达式){//byte,short,char,int,String
      case 数值1:分支1;
​
      case 数值2:分支2;
​
      case 数值3:分支3;
​
      default:最后一个分支
    
    }
    用switch作用的变量,根下面的case后数值,依次的比较数值是否一样。
      如果某个case后的数值和变量的值相同,那么就执行这个case后的分支内容。
      如果所有的case后的数值,都没有匹配上,那么可以执行default里的内容。
​
      如果有break,代表强制结束这个switch
      如果没有break,那么后续的case都会不再匹配,全部执行。这个现象叫做swtich的穿透。
​
    */
    /*
    判断一周的食谱
    每天吃啥
    周一:麻辣烫
    周二:狮子头
    周三:红烧肉
    周四:热干面
    周五:火锅
    周六:麻辣香锅
    周日:方便面
    */
​
    int weekDay = 5;
    /*
    switch(weekDay){//int :short,byte,char,jdk.17,String
      case 6:
        System.out.println("周六:吃麻辣香锅。。");
        break;
      case 7:
        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;
      default:
        System.out.println("输入有误,没饭吃。。");
        break;
      
    }
    */
​
    weekDay = 1;
    switch(weekDay){
      case 1:
​
      case 3:
​
      case 5:
        System.out.println("吃方便面。。");
        break;
      case 2:
​
      case 4:
​
      case 6:
        System.out.println("喝粥。。");
        break;
    }
    
    System.out.println("main over。。");
  }
}
​

课堂练习:

import java.util.Scanner;
public class Test2Switch 
{
  public static void main(String[] args) 
  {
    Scanner sc = new Scanner(System.in);
    //使用switch实现简易计算器:+,-,*,/
    System.out.println("请输入一个整数:");
    int num1 = sc.nextInt();
​
    System.out.println("请再次输入一个整数:");
    int num2 = sc.nextInt();
​
    System.out.println("请输入一个操作:(+,-,*,/)");
    //char oper = '*';
    String oper = sc.next();//"","+","abc"
​
    
    switch(oper){ //+,-,*,/
      case "+":
        System.out.println("求和:" + (num1 + num2));
        break;
      case "-":
      
        System.out.println("减法:" + (num1 - num2));
        break;
      case "*":
​
        System.out.println("乘法:" + (num1 * num2));
        break;
      case "/":
        
        if(num2 == 0){
          System.out.println("除数不能为零");
        }else{
          System.out.println("除法:" + (num1 / num2));
        }
        
        
        break;
      default:
        System.out.println("无法计算。。");
      
    }
​
    System.out.println("程序结束。。");
  }
}
​


四、作业

 

1、if语句作业
  读入一个整数,表示一个人的年龄。
    如果小于6岁,则输出"儿童",
    6岁到12岁,输出"少儿",
    14岁到17岁,输出"青少年",
    18岁到35岁,输出"青年",
    36岁到40岁,输出"中年",
    50岁以上,则输出"中老年"。

 

2、if语句作业
读入一个表示年份的整数,判断这一年是否是闰年。
	如何判断一个年份是否是闰年:
		A:如果这个年份能够被4整除,且不能被100整除,则这一年时闰年。例如:1996年是闰年,而1993年就不是闰年
		B:如果这个年份能够被400整除,也表示这一年时闰年。例如:200年时闰年,1900年不是闰年。

 

3、switch语句作业
读入一个整数,如果是1~5之间,则分别输入5个福娃的名字,否则输出"北京欢迎你"。
  “贝贝”、“晶晶”、“欢欢”、“迎迎”和“妮妮”

 

4、使用boolean类型,定义一个性别。true表示男,false表示女。
判断性别如果是true,表示男。就输出“是男人就。。。。。。”

 

5、模拟登录,键盘上输入用户名和密码,如果用户名是admin密码是123,或者用户名是zhangsan密码是zhangsan123
已标记关键词 清除标记