专业编程基础技术教程

网站首页 > 基础教程 正文

道哥说编程--Java流程控制语句if--else详解

ccvgpt 2024-11-20 13:04:05 基础教程 6 ℃
package first;
/*
 * 本类讲解Java中流程控制之分支语句if--else详解
 */
public class ProcessControl {
	public static void main(String[] args) {
		//在Java中提供了两种常见的分支控制语句:if语句和switch语句
		//其中if语句使用布尔表达式或者布尔值来对分支条件进行控制
		//switch语句对多高特整数值进行匹配来实现分支语句的控制
		
		/*--------------------if条件------------------*/
		System.out.println("**********以下是第一种情况********");
		//第一种形式 只有if(){}语句
		int age = 17;
		if(age>=18)
		{
			System.out.println("成年人");
		}
		//上面的if语句 不会进入if因为不符合if语句的条件 所以什么结果都没有
		
		
		System.out.println("**********以下是第二种情况********");
		//第二种形式 if--else 如果满足if条件 那么进入if语句 不满足则进入else语句 
		//类似于运算符中的三目运算符
		if(age>=18)
		{
			System.out.println("成年人");
		}else
		{
			System.out.println("未成年人");
		}
		
		
		//注意:如果if--else后面只有一行语句时,则可以省略大括号.
		//比如:以上代码可以缩写成
		if(age>=18)
			System.out.println("成年人");//此时if语句块里面只有一行代码
		else
			System.out.println("未成年人");//else里面也只有一行代码
		
		//而对于下面的代码而言,就已经不属于else语句了,总是会执行的
		System.out.println("请注意我不是else里面的语句");
		
		//如果省略了大括号,if语句里面又有多条语句,那么则会引起编译错误
		/* 系统会把System.out.println("成年人");这句代码当成if的结束语句而结束
		if(age>=18)
			System.out.println("成年人");//此时if语句块里面只有一行代码
		 System.out.println("aaa"); 
		else
			System.out.println("未成年人");//else里面也只有一行代码
		*/
		
		System.out.println("**********以下是第三种情况********");
		//第三种形式 if(){}--else{} if --else if(){}--else{} 
		//根据年龄判断 6岁以下输出儿童6(包含6) 7-18(包含7不包含18)岁输出少年 18岁以上输出成年包含18
		//意思:如果满足第一个条件 那么直接进入if 如果第一个条件不满足 那么看是否满足第二个else if
		//如果满足那么进入 不满足 进入最后的else语句
		if(age<=6)
		{
			System.out.println("儿童");
		}else if(age >=7 && age <18)
		{
			System.out.println("青少年");
		}else
		{
			System.out.println("成年人");
			
		}
		
		System.out.println("**********以下是第四种情况********");
		//第四种形式:多个else if (if(){} ---else if(){}--else if(){}--else{})
		//根据年龄判断 6岁以下输出儿童6(包含6) 7-14(包含7和14)岁输出少年
		//14岁到18岁(包含14 不包含 18)输出青少年
		//18-40输出青年(包含18和40年) 40岁以上输出中老年
		if(age>=6)
		{
			System.out.println("儿童");
		}else if(age >=7 && age <=14)
		{
			System.out.println("少年");
		}else if(age>14 && age <18)
		{
			System.out.println("青少年");
		}else if(age >=18 && age <40)
		{
			System.out.println("青年");
		}else if(age >=40)
		{
			System.out.println("中老年"); 
		}
		
		
		//那么对于if语句,还有个非常容易出现逻辑错误的地方,这个逻辑错误并非是说代码错误语法问题,我们来看下面的例子
		System.out.println("******************以下演示逻辑错误的问题*****************");
		int num =46;
		if(num>=18)
		{
			System.out.println("成年人");
		}else if(num >=40)
		{
			System.out.println("中年人");
		}else if(num>60)
		{
			System.out.println("老年人");
		}
		//表面上看代码好像没什么问题,但我们运行之后会发现出来的结果是成年人,
		//但是按照代码逻辑出来的结果很明显应该是中年人的啊 怎么就变成老年人了呢
		//问题就出在第一个if里面 按照程序步骤走 46岁首先就大于了18 所以当然直接就进了第一个if后面的结果就不会再考虑了
		
		//为了达到正确的目的,我们改一下业务逻辑
		if(num>=60)
		{
			System.out.println("成年人");
		}else if(num >=40)
		{
			System.out.println("中年人");
		}else if(num>18)
		{
			System.out.println("老年人");
		}
	 //这样一来呢就达到了我们的目的(所以这里体现了一个非常重要的思想就是逻辑思想。做程序逻辑很重要)
		
	
	}

}

如果大家对以上案例有什么不明白的地方可以在评论区留言或者私信给道哥@道哥说编程

道哥说编程--Java流程控制语句if--else详解

最近发表
标签列表