Java【第三篇】基本语法之--选择结构

补充:Scanner类 

package com.uncleyong;

//1). 导入 Scanner 类
import java.util.Scanner;

public class TestScanner{

    public static void main(String [] args){

        //1. 在控制台输入整数

        //2). 创建 Scanner 对象
        Scanner scanner = new Scanner(System.in);

        //3. 调用 Scanner 对象的 nextInt() 方法读入输入的整数
        System.out.print("a=");
        int a = scanner.nextInt();

        System.out.println("您已经输入的整数 a: " + a);

    }
}

Java分支语句分类

分支语句根据一定的条件有选择地执行或跳过特定的语句,分为两类:

  if-else 语句
  switch 语句

if-else 语句

if-else语句语法格式

if(布尔表达式){
    语句或语句块;
}
if(布尔表达式) {
    语句或语句块;
} 
else if(布尔表达式){
    语句或语句块;
}else {
    语句或语句块;
}

if-else语句应用举例

package com.uncleyong;

public class TestIf {
    public static void main(String[] args) {
        //若 age <= 8, 打印 "没上学"
        //若 age <= 14, 打印出 "小学生"
        //若 age <= 17, 打印 "初中生"
        //若 age <= 20, 打印 "高中生"
        //若 age <= 24, 打印 "大学生"
        //若都不满足, 打印 "大学毕业"

        int age = 5;

        if(age <= 8){
            System.out.println("没上学");
        }else if(age <= 14){
            System.out.println("小学生");
        }else if(age <= 17){
            System.out.println("初中学");
        }else if(age <= 20){
            System.out.println("高中生");
        }else if(age <= 24){
            System.out.println("大学生");
        }else{
            System.out.println("大学毕业");
        }
    }
}

嵌套if结构

示例:

如果今天周末

  如果天晴就出去玩

  如果下雨就家里看电视

否则

  上班

switch 语句

switch语句语法格式

switch(表达式){
    case 常量1:
        语句1;
        break;
    case 常量2:
        语句2;
        break;
    case 常量3:
    case 常量4:
    case 常量5:
        语句5;
        break;
    ……
    case 常量N:
        语句N;
        break;
    [default:
        语句;
        break;]
} 

上面:3、4、5执行相同的代码,就可以上面方式写

switch语句应用举例

package com.uncleyong;

import java.util.Scanner;

public class SwichScore {
    public static void main(String[] args) {
        /*
			编写程序:从键盘上读入一个学生成绩,
			存放在变量score中,根据score的值输出其对应的成绩等级:
			score>=90           等级:A
			70=<score<90     		等级: B
			60=<score<70     		等级: C
			score<60            等级:D
		*/
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入学生的学习成绩, score=");
        int score = scanner.nextInt();

        switch(score/10){
            case 10:
            case 9:
                System.out.println("A");
                break;

            case 8:
            case 7:
                System.out.println("B");
                break;

            case 6:
                System.out.println("C");
                break;

            default:
                System.out.println("D");
        }

    }
}
package com.uncleyong;

public class SwichNum {
    public static void main(String[] args) {
        /* 使用switch语句改写下列if语句:
	 	  int a = 3;
		  int x = 100;
		  if(a==1)
				x+=5;
			else if(a==2)
				x+=10;
			else if(a==3)
				x+=16;
			else if(a==4)
				x+=34;
	 	*/
        int a = 3;
        int x = 100;
        switch (a){
            case 1:
                x += 5;
                break;
            case 2:
                x += 10;
                break;
            case 3:
                x += 16;
                break;
            case 4:
                x += 34;
        }
        System.out.println(x);
    }
}

  

switch语句有关规则

  switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串(JDK6及以前不支持字符串类型),不能为bool;

        char sex = 'm';
        switch (sex){}

        String gender = "male";
        switch (gender){}

  case子句中的值必须是常量,且所有case子句中的值应是不同的;
  default子句是任选的;
  break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,会执行下一个case分支,如果下一个是deault,会执行最后一个default分支。

if和switch的区别

switch结构
  只能进行等值的判断,且只能为整型、字符型、字符串

if结构
  没有限制,适合某个连续区间的判断

练习题(参考答案已放在Q群文件中)

1、由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出。

IfElseSort.java

2、输入 2017 年的某个月份和日期, 例如 month=4, day=21
经过程序计算, 打印出输入的月份和日期是 2017 年的第几天. 31+28+31+21

SwichDay.java

3、提示用户输入三角形的边a、b、c,范围必须在[1,100)之间

判断三角形的类型:
1.非三角形
2.等边三角形
3.直角三角形
4.等腰三角形
5.普通三角形

原文地址:https://www.cnblogs.com/uncleyong/p/9729185.html