ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DAY9 if语句和switch语句

2021-07-23 21:31:06  阅读:170  来源: 互联网

标签:语句 case DAY9 System switch score println 表达式


一.流程控制语句分类
顺序结构
分支结构(if, switch)
循环结构(for, while, do…while)
(1) 顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多
数的代码都是这样执行的。
顺序结构执行流程图:

 

 

(2)分支结构之if语句
 if语句格式1(理解)

格式:
if (关系表达式) {
  语句体;
}

执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后面的语句内容

 

 示例:

public class IfDemo {
  public static void main(String[] args) {
    System.out.println("开始");
   
// 如果年龄大于18岁, 就可以上网吧
    int age = 17;
    if(age >= 18){
// int a = 10;
      System.out.println("可以上网吧");
    }
    System.out.println("结束");
  }
}

注:如果If语句所控制的语句体是一条语句,大括号可以省略不写,但是不建议

if(age >= 18)
    int a = 10; //报错,因为对于编译器而言定义变量是一条语句,赋值又是另外一条语句

 

  if语句格式2(理解)

格式:
if (关系表达式) {
  语句体1;
} else {
  语句体2;
}

①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容

 

 示例:奇偶数
任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。

public class Demo2If {
  public static void main(String[] args) {
  // 程序判断一个数, 是奇数还是偶数
    int num = 9;
    if(num % 2 == 0){
      System.out.println("偶数");
    }else{
      System.out.println("奇数");
    }
  }
}

 if语句格式3(理解)

格式:
if (关系表达式1) {
  语句体1;
} else if (关系表达式2) {
  语句体2;
}
…
else {
  语句体n+1;
}

执行流程:
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④…
⑤如果没有任何关系表达式为true,就执行语句体n+1。

 

 示例:
定义一个在0~100之间的变量a, 90~100优秀,80~89良好,70~79中等,60~69及格,0~59请努力加油!

public class Demo3If {
  public static void main(String[] args){
    int score = 65;
    if(score >= 90 && score <= 100){
      System.out.println("优秀");
    }else if (score >= 80 && score <= 89){
      System.out.println("良好");
    }else if (score >= 70 && score <= 79){
      System.out.println("中等");
    }else if (score >= 60 && score <= 69){
      System.out.println("及格");
    }else if (score >= 0 && score <= 59){
      System.out.println("请努力加油");
    }else{
       System.out.println("成绩有误!");
    }
  }
}

 

3.3.4 if语句格式3案例(应用)
需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明
的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
分析:
①小明的考试成绩未知,可以使用键盘录入的方式获取值
②由于奖励种类较多,属于多种判断,采用if...else...if格式实现
③为每种判断设置对应的条件
④为每种判断设置对应的奖励

import java.util.Scanner;
public class IfTest02 {
  public static void main(String[] args){
// 1. 使用Scanner录入考试成绩
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入您的成绩:");
  int score = sc.nextInt();
// 2. 判断成绩是否在合法范围内 0~100
  if(score >=0 && score <= 100){
// 合法成绩
// 3. 在合法的语句块中判断成绩范围符合哪一个奖励
    if(score >= 95 && score <= 100){
      System.out.println("自行车一辆");
    }else if(score >= 90 && score <= 94){
      System.out.println("游乐场一次");
    }else if(score >= 80 && score <= 89){
      System.out.println("变形金刚一个");
    }else {
      System.out.println("挨顿揍, 这座城市又多了一个伤心的人~");
    }
   }else{
// 非法的话, 给出错误提示
      System.out.println("您的成绩输入有误!");
    } 
  }
}

(3) switch语句


分支语句switch语句
格式

switch (表达式) {
    case 1:
      语句体1;
     break;
   case 2:
     语句体2;
     break;
...
   default:
     语句体n+1;
     break;
}            

 执行流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉

注意事项:

1.case的值不允许重复

2.case后面的值只能是常量,不能是变量

 

 switch语句case穿透

概述 : 如果switch语句中,case省略了break语句, 就会开始case穿透
需求 : 键盘录入星期数,输出工作日、休息日 (1-5)工作日,(6-7)休息日
示例代码:

/*
case穿透是如何产生的?
如果switch语句中,case省略了break语句, 就会开始case穿透.
现象:
当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行
直到看见break,或者将整体switch语句执行完毕,才会结束。
*/
public static void main(String[] args){
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入星期数:");
  int week = sc.nextInt();
  switch(week){
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      System.out.println("工作日");
      break;
    case 6:
    case 7:
      System.out.println("休息日");
      break;
    default:
      System.out.println("您的输入有误");
      break;
  }
}

 

标签:语句,case,DAY9,System,switch,score,println,表达式
来源: https://www.cnblogs.com/swx2022kycgsa/p/15053854.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有