流程控制语句之if语句以及switch语句的使用

流程控制语句之if语句以及switch语句的使用

一、if语句

1.格式(1)
	if(表达式){
				语句;
	}
执行流程:

针对一种情况进行判断
判断表达式是否成立,如果为true,执行语句,否则,不执行!

注意事项:
  1. 针对格式1这种情况,语句中的大括号可以省略,但是不建议,{}表示一个作用域
  2. if后面不能有分号,有分号的地方不能有{}
  3. if语句后面如果有分号,if语句没有意义
2.格式(2)
if(表达式){
		语句1;
}else{
		语句2;
}
执行流程
  1. 首先判断表达式是否成立,
  2. 如果成立,执行语句1
  3. 不成立,执行语句2
3.格式(3)
		if(表达式1){
			语句1;
		}else if(表达式2){
			语句2;
		...
		...
		}else{
		语句n+1;
		}
应用场景:

针对多个表达式进行判断

执行流程:
  1. 首先判断表达式1是否成立,如果成立,执行语句1
  2. 如果不成立,继续判断表达式2是否成立,如果成立,执行语句2
  3. 如果表达式都不成立,执行else语句,执行语句n+1…
4. 应用:

1) 键盘录入月份的值
3,4,5------春季
6,7,8------夏季
9,10,11----秋季
12,1,2-----冬季

import java.util.Scanner;
class IfText1{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个月份");
		int a = sc.nextInt();
		if(a==3 || a==4 || a==5){
			System.out.println("春季");
		}else if (a==6 || a==7 || a==8){
			System.out.println("夏季");
		}else if(a==9 || a==10 || a==11){
			System.out.println("秋季");
		}else if(a==12 || a==1 || a==2){
			System.out.println("冬季");
		}else{
			System.out.println("数据不合法");
		}			
	}
}

2) x和y的关系满足如下:
x>=3 y = 2x + 1;
-1<=x<3 y = 2x;
x<=-1 y = 2x – 1;
求y的值

import java.util.Scanner;
class IfText2{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个数值");
		int x = sc.nextInt();
		int y ;
		if (x>=3){
			y = 2*x +1 ;
		}else if (x>=-1 && x<3){
			y = 2*x ;
		}else{
			 y = 2*x-1 ;
		}
		System.out.println("y的值为:"+y);	
	}
}		

3) 键盘录入三个数据,比较数据的最大值

import java.util.Scanner;
class IfText3{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数据");
		int num1 = sc.nextInt();
		System.out.println("请输入第二个数据");
		int num2 = sc.nextInt();
		System.out.println("请输入第三个数据");
		int num3 = sc.nextInt();
		int max;
		if (num1 > num2){
			if(num1 > num3 ){
				max = num1;
			}else{
				max = num3;
			}
		}else{
			if (num2 > num3 ){
				max = num2;
			}else {
				max = num3;
			}
		}
		System.out.println("最大值为:"+max);
	}
}

4) 键盘录入一个数,判断是奇数还是偶数

import java.util.Scanner;
class IfText4{
	publics static void main(String[] args){
		Scanner sc = new Scanner (System.in);
		System.out.println("请输入一个数据");
		int a = sc.nextInt();
		if ( a % 2 = 0){
			System.out.println("该数据为偶数");
		}else{
			System.out.println("该数据为奇数");
		}
	}
}

二、switch语句

1. 格式
switch(表达式){
		case1:
			语句1;
			break ;
		case2:
			语句2;
			break ;
		...
		...
		default:
			语句n+1;
			break ;
		}
执行流程:
  1. switch表达式 得到一个结果,首先需要和case后面的值1进行比较,如果匹配,执行语句1,遇见break,结束语句
  2. 如果case后面的值1不匹配,然后case 值2进行匹配,如果成功,执行语句2,break结束
  3. 依次这样进行选择判断,如果都不匹配,执行default语句,结束!
注意事项:
  1. case后面只能跟常量,不能变量
  2. default语句可以在switch语句中的任意位置,
    如果在末尾,break可以省略,但是如果在语句中,那么break不能省略;否则,会造成一种现象,case穿透!
  3. switch语句的结束条件什么?
    a)语句break,语句结束
    b)程序默认执行到末尾!
2. switch后面的表达式可以跟数据类型

int,short,char,byte
JDK1.5(包含)以后 表达式可以是枚举类型(enum)(第二阶段—> jdk新特性 ) (引用类型)
JDK1.7(包含)以后 表达式可以是String类型

3.应用

1)键盘录入数据,判断当前星期几
1,星期一
2,星期二
3,星期三
4,星期四
5,星期五
6,星期六
7,星期日
如果录入其他数据,提示"非法数据"

import java.util.Scanner ;
class SwitchText1{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in) ;
		System.out.println("请您输入一个数据:") ;
		int week = sc.nextInt();
		switch(week){
		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 ;
		default:
			System.out.println("非法数据") ;
			break ;
		}
	}
}

2) 键盘录入月份的值
3,4,5------春季
6,7,8------夏季
9,10,11----秋季
12,1,2-----冬季(利用case穿透)

import java.util.Scanner;
class SwitchText2{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个月份");
		int a = sc.nextInt();
		switch(a){
		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;
		case 12:
		case 1:
		case 2:
			System.out.println("冬季");
			break;
		default:
			System.out.println("无效的数据");
			break;
		}
	}	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值