选择结构共有4种:
- if 结构
- if…else… 结构
- if… else if… else 结构
- switch 结构
一. if 结构
语法
if(条件){
//条件成立时执行的语句
}
例1:给定一个值num,用 if 选择结构判断是否大于10.
public class demo16{
public static void main(String[] args){
int num = 7; //num值为7
if(num < 10){
System.out.println("num的值小于10");
}
if(num == 10){
System.out.println("num的值等于10");
}
if(num > 10){
System.out.println("num的值大于10");
}
}
}
例2:控制台输入一个正整数,判断是偶数还是奇数
import java.util.Scanner;
public class Demo18{
public static void main(String[] args){
System.out.println("请输入一个整数:");
//创建Scanner类的对象
Scanner input= new Scanner(System.in);
//接收控制台输入的int类型数据
int num = input.nextInt();
if(num%2==0){
System.out.println(num+"是偶数");
}
if(num%2!=0){
System.out.println(num+"是奇数");
}
}
}
二. if …else… 结构
语法
if(条件){
//条件成立时执行的语句
}else{
//条件不成立时执行的语句
}
例:控制台输入一个正整数,判断是奇数还是偶数
import java.util.Scanner;
public class Demo19{
public static void main(String[] args){
System.out.println("请输入一个整数");
//创建scanner类的对象
Scanner sc = new Scanner(System.in);
//接收控制台输入的int类型的数据
int num = sc.nextInt();
if(num % 2 == 0){
System.out.println(num + "是偶数");
}else{
System.out.println(num + "是奇数");
}
}
}
三. if … else if … else 结构
语法
if(条件1){
//条件1成立时执行的语句
}else if(条件2){
//条件2成立时执行的语句
}
...
else{
//其他情况执行的语句
}
例:控制台输入学生成绩,判断对应成绩应该给予的奖励
import java.util.Scanner;
public class Demo20{
public static void main(String[] args){
System.out.println("请输学习成绩:");
//创建Scanner类的对象
Scanner input = new Scanner(System.in);
//接收控制台输入的int类型数据
int score = input.nextInt();
if(score>=90 && score<=100){
System.out.println("奖励IPhone笔记本");
}else if(score>=70 && score<80){
System.out.println("奖励MP4");
}else if(score>=80 && score<90){
System.out.println("奖励IPhone手机");
}else{
System.out.println("加油");
}
}
}
switch 结构
语法
switch(表达式){
case 匹配值1: //case后面是常量表达式,不允许重复
//语句1
break;
case 匹配值2:
//语句2
break;
...
case 匹配值N:
//语句N
break;
default:
//其他情况
break;
}
注意:
break关键字的使用,break表示跳出整个switch结构。
switch结构的括号中的表达式的数据类型。
switch括号中表达式可选用的类型:
JDK1.5之前只能是 int类型。
JDK1.5开始可以使用int类型,enum(枚举类型)
JDK1.7开始可以使用int类型,enum(枚举类型),String(字符串)
char类型,short类型,long类型可以使用吗?
char类型,short类型可以,自动类型转换
long类型 不可以
例1: 输入一个月数,判断哪个季节
package com.bh;
import java.util.Scanner;
/**
*
* @author qwy
* 输入一个月数,判断哪个季节
* 345 春季
* 12 1 2 冬季
*
*/
public class Demo1 {
public static void main(String[] args) {
System.out.println("请输入一个月份:");
Scanner input = new Scanner(System.in);
int month=input.nextInt();
switch(month){
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;
case 6:
System.out.println("夏季");
break;
case 7:
System.out.println("夏季");
break;
case 8:
System.out.println("夏季");
break;
case 9:
System.out.println("秋季");
break;
case 10:
System.out.println("秋季");
break;
case 11:
System.out.println("秋季");
break;
case 12:
System.out.println("冬季");
break;
default:
System.out.println("输入月份不正确");
break;
}
System.out.println("程序结束");
}
}
简化代码:
package com.bh;
import java.util.Scanner;
/**
* @author qwy
* 输入一个月数,判断哪个季节
* 345 春季
* 12 1 2 冬季
*/
public class Demo2 {
public static void main(String[] args) {
System.out.println("请输入一个月份:");
Scanner input = new Scanner(System.in);
int month=input.nextInt();
switch(month){
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("输入月份不正确");
break;
}
System.out.println("程序结束");
}
}