目录

一.程序的三大结构

二.关系运算符

三.关系表达式

四.boolean类型

五.if选择结构

if案例

六.if - else选择结构

if - else案例

七.多重if选择结构

多重if选择结构案例

八.嵌套if选择结构

嵌套if选择结构案例

逻辑运算符

九.switch选择结构

switch选择结构案例

十.选择结构的对应练习题

十一.笔记


一.程序的三大结构

  • 顺序结构:程序只能从第一行开始执行,中间不能跳过某一行代码,去执行后续代码。

  • 选择结构:打破顺序结构的限制,可以让代码进行有选择的执行,也就是说某一行或者某几行代码在条件不符合的时候不执行。

  • 循环结构:让某一行或者某几行代码可以重复多次执行。

二.关系运算符

关系运算符表
名称 大于 大于等于 等于 小于等于 小于 不等于
付哈 >= == <= < !=

ps:在初识Java(二)中学习了赋值运算符,算数运算符以及自增自减运算符。

:=为赋值运算符,==才表示等于。

三.关系表达式

  • 用关系运算符连接起来的算式我们称之为关系表达式。

  • 关系表达式的值是一个逻辑值,即"真"或"假"。

  • 关系表达式的结果只能是"真"或者"假"两种情况。

四.boolean类型

  • 在全宇宙范围内,布尔类型的值只有两个,真:true    ;  假:false    。

ps:到现在已学习了五种类型:整型int,双精度浮点型double,字符串类型String,字符型char以及布尔类型boolean。

五.if选择结构

  • 流程图

ps:流程图可以帮助我们梳理编程的步骤和逻辑。

  • 基本语法:

                          if(条件){ 

                                 //代码块

                          }

  • 当条件成立,即表达式的值为真(非0)时,执行"语句1";否则执行if语句的下一个语句。
if案例
  • 如果小明在期中考试语文大于90分,小明的妈妈就会奖励小明一个篮球。
import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int score = input.nextInt();
        if (score > 90){
            System.out.println("小明得到妈妈奖励的篮球");
        }
    }
}

练习

  • 输入一个整数,判断是不是偶数,若是则输出“是偶数”。
import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        if (num % 2 == 0){
            System.out.println(num + "是偶数");
        }
    }
}

六.if - else选择结构

  • 流程图

  • 基本语法

                         if(条件){ 

                                 //代码块1

                          }else{

                                //代码块2

}

  •  当条件成立,即表达式值为真(非0)时,执行"代码块1",否则执行else后的"代码块2"。

ps:if和else互斥,不可能同时执行。(As:生活中的十字路口)

if - else案例
  • 在体育测试中,若一分钟的跳绳次数大于等于180次则为"合格",否则为"不合格"。

  • 做题思想流程图

import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        if (num >= 180){
            System.out.println("合格");
        }else{
            System.out.println("不合格");
        }
    }
}

 练习题

  • 给定一个数,判断该数是奇数还是偶数。如果为奇数,则输出odd;如果为偶数,则输出even。
import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        System.out.println("请输入一个整数:");//提示用户输入信息
        Scanner input = new Scanner(System.in);//接收用户输入的信息
        int num = input.nextInt();
        if (num %2 == 0){//进行判断,是否有余数
            System.out.println("even");//是偶数则输出even,不是则执行后面的语句
        }else{
            System.out.println("odd");//输出odd
        }
    }
}

七.多重if选择结构

  • 多重 if 既可以做等值判断,也可以做范围判断。

  • 基本语法

          if (条件1){
            //代码块1
          }else if (条件2){
            //代码块2
          }else {
           //代码块3
          }

多重if选择结构案例
  • 对学员的期末考试进行评测,成绩>=90为优秀,成绩>=为良好,成绩>=70为中等,成绩>=60为合格,成绩<60为不及格。

import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        System.out.println("请输入一个学生的分数:");//提示用户输入信息
        Scanner input = new Scanner(System.in);//接收用户输入的信息
   int score = input.nextInt();
        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("不及格");
        }
    }
}

ps :多重 if 可以没有最后的else,用else if 再做一次判定,系统也不会报错。

import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        System.out.println("请输入一个学生的分数:");//提示用户输入信息
        Scanner input = new Scanner(System.in);//接收用户输入的信息
   int score = input.nextInt();
        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 if (score < 60){
            System.out.println("不及格");
        }
    }
}
  • 多重 if 在使用过程中的注意事项
  1. 在写很多个不同分支结构的 if 时,我们需要从高到低或者从低到高按照次序写代码,如果不按照次序写代码的话,结果可能会出现和我们的预期不一致的现象。

练习

  • 输入两个整数,比较它们的大小。若 x > y,输出 >;若 x = y,输出 = ;若 x < y,输出 <。
import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        System.out.println("请输入两个整数:");//提示用户输入信息
        Scanner input = new Scanner(System.in);//接收用户输入的信息
   int num1 = input.nextInt();
   int num2 = input.nextInt();
        if (num1 > num2){
            System.out.println(">");
        }else if (num1 == num2){
            System.out.println("=");
        }else{
            System.out.println("<");
        }
    }
}

八.嵌套if选择结构

  • 在 if 语句中又包含一个或者多个 if 语句,称为 if 语句的嵌套。

  • 大体框架

  • 语法结构
if (条件1){
    if (条件2){
        //代码块1
    }
}else {
    //代码块2
}
}else{
    //代码块3
}
嵌套if选择结构案例
  • 写一个登陆程序,输入正确的用户名和密码,输出语句"欢迎您!",否则输出"用户名不正确!"或者"密码错误!"。

import java.util.Scanner;
import java.util.concurrent.Callable;

public class lian {
    public static void main(String[] args) {
        //准备一个正确的用户名以及密码
        final String UNAME = "李";
        final String UPW = "555555";
        //提示输入用户名和密码
        System.out.println("请输入用户名:");
        Scanner input = new Scanner(System.in);
        String uname =input.next();
        //比较输入的数据是否和准备的用户名和密码一致
        if (uname.equals(UNAME)){
            //如果用户名输入正确,则继续运行下面的代码
            //否则返回”用户名不正确!“
            System.out.println("请输入密码:");
            String upw = input.next();
            if (upw.equals(UPW)){
                   //继续比较密码,如果正确则返回欢迎您!
                //如果错误则返回”密码错误!“
                System.out.println("欢迎您!");
            }else{
                System.out.println("密码错误!");
            }
        } else {
            System.out.println("用户名不正确!");
        }
    }
}

ps:在Java中,比较两个字符串的时候,要用equals。

练习

  • 输入一个整数,若这个数 > 1并且 < 100,则输出 yes ,否则输出 no。
import java.util.Scanner;
import java.util.concurrent.Callable;

public class lian {
    public static void main(String[] args) {
       // 输入一个整数,若这个数 > 1并且 < 100,则输出 yes ,否则输出 no。
        //提示输入一个整数
        System.out.println("请输入一个整数:");
        Scanner input = new Scanner(System.in);
        int num =input.nextInt();
        //对输入的数进行判断
        if (num > 1){
            //如果输入的数 > 1,则继续运行下面的代码
            //否则返回”no“
            if (num < 100){
                   //继续判断输入的数是否 < 100
                //如果 < 100,则返回”yes“,如果 > 100,则返回no。
                System.out.println("yes");
            }else{
                System.out.println("no");
            }
        } else {
            System.out.println("no");
        }
    }
}
逻辑运算符
逻辑与 逻辑或 逻辑非
&& | |
  • 逻辑三兄弟:逻辑与(&&)、逻辑或(| |)、逻辑非(!)

  • 逻辑与(3>1&&5>3):如果表达式A为真,同时表达式B也为真,整体结果为真。简记:同真为真,其余为假

  • 逻辑或(A | | B):表达式A和B中,只要有一个为真,整个表达式的结果就可以为真。简记:有真必真,其余为假

  • 逻辑非(!):取反。原来是真的,取反后结果为假。

学习了逻辑运算符后,那么上面的题代码可以简化为:

import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
       // 输入一个整数,若这个数 > 1并且 < 100,则输出 yes ,否则输出 no。
        //提示输入一个整数
        System.out.println("请输入一个整数:");
        Scanner input = new Scanner(System.in);
        int num =input.nextInt();
        //对输入的数进行判断
        if (num > 1 && num < 100){
            System.out.println("yes");
        } else {
            System.out.println("no");
        }
    }
}

九.switch选择结构

  • 适用于条件判断是等值判断的情且只能做等值判断。

  • switch应用的场景是有限的。优点:可以简化代码,使程序员输入代码的时间更短。

  • 语法结构

switch (表达式){
    case 常量1:
        //语句;
        break;
    case 常量2:
        //语句;
        break;
        //···
    default:
        //语句;
        break;
}
switch选择结构案例
  • 根据输入的数字,代表周几,打印该日菜单

  • 周一(1):红烧肉

  • 周二(2):土豆牛肉

  • 周三(3):炸鸡

  • 周四(4):汉堡

  • 周五(5):麻婆豆腐

import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        int day = input.nextInt();
  switch (day){
      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;
  }
    }
}
  •  Switch注意事项
  1. 常量:int    char    String

  2. 一定要在每一个case块以及default后加上break,否则造成case穿透,也就是代码会一直向下执行,直到碰到第一个break。

  3. 如果多个变量值,输出的语句相同,可以共用一个break节省程序员时间。

Ag:星期一到星期三的菜品都是炸鸡就可以优化代码如下

  switch (day){
      case 1:
      case 2:
      case 3:
          System.out.println("炸鸡");
break;
}

十.选择结构的对应练习题

  • (一)输入三个数,输出其中最大的数。
import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入三个数字:");
        int first = input.nextInt();
        int second = input.nextInt();
        int third = input.nextInt();
        //一定要默认一个最大值。一般处理方式都是将第一个数字作为最大值。
        int max = first;
        if (second > max){
           max = second;
        }if (third > max){
            max = third;
        }//经过这样一个过程,那么最后保存在max中的值就是最大值。
        System.out.println("最大值为:" + max);
  }
    }
  • (二)判断输入的年份是否为闰年,如果是闰年就输出“是闰年”,否则就输出“平年”。 
import java.util.Scanner;

public class lian {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = input.nextInt();
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
            System.out.println("闰年");
        }else
        System.out.println("平年");
  }
    }

十一.笔记

  • 使用Scanner需要先导包 import java.util.Scanner。

  • 流程图符号代表的含义

  •  input.nexInt();后按住alt+enter能够快速补全代码并生成变量。

  • 在Java中,比较两个字符串的时候,要用equals。

  • switch:转换。

Logo

2万人民币佣金等你来拿,中德社区发起者X.Lab,联合德国优秀企业对接开发项目,领取项目得佣金!!!

更多推荐