Day05- 流程控制语句

Day05- 流程控制语句,第1张

Day05- 流程控制语句  流程控制语句 顺序结构语序


//jvm要加载这个类

​
class ShunXuDemo{
	
	//main方法---需要被jvm调用,程序的入口
	public static void main(String[] args){
		
		System.out.println("程序开始了,,,,,,") ;
		
		System.out.println("我爱高圆圆.....") ;
		
		System.out.println("程序结束了......") ;
		int i = 100 ;
		System.out.println("over"+i) ;
	}
}

​

选择结构语句

​
//导包
import java.util.Scanner ;
class IfDemo{
	
	public static void main(String[] args){
		
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in) ;
		
		//提示并录入数据
		System.out.println("请您输入一个数据x的值:") ;
		int x = sc.nextInt() ;
		if(x>=10 && x<=20){
			System.out.println("x在10和20之间,值是:"+x) ;
		}
		
		if(x<10){
			System.out.println("x小于10,值是:"+x) ;
		}
		//if()...
		
		System.out.println("over") ;
	}
}

​

 

​
import java.util.Scanner ;
class IfDemo2{
	
	public static void main(String[] args){
		
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in) ;
		
		//提示并录入数据
		System.out.println("请您输入x的值") ;
		int x = sc.nextInt() ;
		
		//逻辑判断
		
		if(x <=10){
			System.out.println("x小于或者等于10,它的值是:"+x) ;
		}
		
		
		//if(x <=10);//if就是没有意义,因为分号此时表示语句结束,而且if里面空语句体
		
		{ //Java中的局部代码块,限定局部变量的生命周期
			System.out.println("x小于或者等于10,它的值是:"+x) ;
		}
		
		System.out.println("-----------------------------------") ;
		
		{  //自己的作用域
			//Java中的局部代码块,限定局部变量的生命周期
			int y = 1000  ;
			System.out.println("y:"+y) ;
		}
		//System.out.println(y) ;//访问不到,不再作用范围内
		
		System.out.println("Over....") ;
	}
	
}

​

​
import java.util.Scanner ; //导包
class IfDemo3{
		
		public static void main(String[] args){
			
			//创建键盘录入对象
			Scanner sc = new Scanner(System.in) ;
			
			//提示并录入数据
			System.out.println("请你输入一个数据:") ;
			int num  = sc.nextInt() ;
			
			//if格式2
			if(num>=10){
				System.out.println("num大于或者等于10,值是"+num) ;
			}else{
				System.out.println("num小于10,值是"+num) ;
			}
			
			System.out.println("Over...") ;
			
			
			System.out.println("----------------------------------------") ;
			
			//比较两个数据中的最大值
			//提示并录入数据
			System.out.println("请你输入第一个数据:") ;
			int a  = sc.nextInt() ;
			
			System.out.println("请你输入第二个数据:") ;
			int b  = sc.nextInt() ;
			
			
			//定义结果变量
			int max ;
			if(a>b){
				//System.out.println("最大值是"+a) ; //输出语句
				max = a ; //将a赋值max
			}else{
				max = b ; //将b赋值max
			}
			
			System.out.println("两个数据中的最大值是:"+max) ;
			
		}
}

​

 

​
//导包
import java.util.Scanner ;
class IfTest{
	public static void main(String[] args){
		
		//使用键盘录入的String 演示
		//创建键盘录入对象
		
		
		
		//需求
		//假设已经存在用户名和密码(模拟数据库)
		
		String name = "admin" ; //String 是一种特殊的引用类型(后期常用类中讲)
		String pwd = "admin" ;
		
		//创建键盘录入对象,准备录入用户名和密码
		Scanner sc = new Scanner(System.in) ;
		
		//提示并录入数据
		System.out.println("请您输入用户名:") ;
		//public String nextLine() :录入String类型数据
				//变量名  = 固定格式:键盘录入对象.nextLine() ;
		String username = sc.nextLine() ;
		
		System.out.println("请您输入一个密码:") ;
		String password = sc.nextLine() ;
		
		
		//进行判断
		//我们使用已知存在的用户名和密码和录入的用户名和密码进行对比
		
		if(name.equals(username) && pwd.equals(password)){ //一致
		
			//成立
			System.out.println("恭喜您,登录成功!");
			
		}else{
			//不成立
			System.out.println("对比起,您的用户名或者密码错误!");
		}
		 
		
	}
}

​


   if语句格式2 和三元运算符的区别
    
        if...else:流程控制语句,范围比较广泛,不仅可以 *** 作具体 数据值还可以 *** 作语句
        System.out.println("提示信息...") ;
        而三元运算符--是运算符的一种,它只能 *** 作具体的数据结果值,不能直接里面嵌套使用
        System.out.println("提示信息...") ; 
        
        三元运算符能够实现的---一定能够使用if...else实现
        而if...else...实现不一定能够使用三元运算符实现!
        以后见到三元运算符----几乎都是在看Jdk提供的开发文档中---里面涉及到某些
        类的原码中会看到三元运算符!
        实际开发中,业务场景逻辑判断---需要使用if格式2居多

    需求:
        1)键盘录入两个数据,比较两个数据中的最大值
        2)键盘录入一个数据,判断这个数据是否为偶数? 

​
//导包
import java.util.Scanner ;
class IfDemo{
	public static void main(String[] args){
		
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in) ;
		
		//提示并录入数据
		System.out.println("请您输入第一个数据:") ;
		int a = sc.nextInt() ;
		
		System.out.println("请您输入第二个数据:") ;
		int b = sc.nextInt() ;
		
		
		//方式1:使用三元运算符去 *** 作
		int max = (a>b) ? a: b ;
		System.out.println("两个数据中的最大值是:"+max) ;
		
		
		System.out.println("------------------------------") ;
		
		//if语句格式2实现
		int max2 ;//定义结果变量
		if(a >b ){
			max2 = a ; 
		}else{
			max2 = b ;
		}
		System.out.println("两个数据中的最大值是:"+max2) ;
		
		
		System.out.println("=============================================") ;
		
		//键盘录入一个数据,判断数据是否为偶数
		//使用if语句
		System.out.println("请您输入一个数据x:") ;
		int x = sc.nextInt() ;
		
	
		if(x % 2 == 0){
			System.out.println("这个数据是偶数") ;
		}else{
			System.out.println("这个数据是奇数") ;
		}
		System.out.println("-----------------------------") ;
		
		
		//使用三元运算符-----运算符的一种
		// System.out.println("这个数据是偶数");输出语句不能作为三元运算符的结果
		//错误的
		//String str = (x%2==0)?(System.out.println("这个数据是偶数")):
			//(System.out.println("这个数据是奇数") ) ;
		//System.out.println(str) ;
		
		String str = (x % 2==0)? "偶数":"奇数" ;
		System.out.println(str) ;
	}
}

​

​
//导包
import java.util.Scanner ;
class IfDemo2{
	
	public static void main(String[] args){
			
			//创建键盘录入对象
			Scanner sc = new Scanner(System.in) ;
			
			//提示并录入数据
			System.out.println("请您输入学生的成绩:") ;
			int socre = sc.nextInt() ;
			
			//按照上面的需求格式进行判断	
			
			
			if(socre>100 || socre<0){
				//错误数据提示
				System.out.println("对不起,非法数据!") ;
			}else if(socre>=90 && socre<=100){
				System.out.println("成绩优秀") ;
			}else if(socre>=80 && socre<90){
				System.out.println("成绩较好") ;
			}else if(socre>=70 && socre<80){
				System.out.println("成绩良好") ;
			}else if(socre >=60 && socre<70){
				System.out.println("成绩及格") ;
			}else{
				System.out.println("不及格") ;
			}
	}
}

​

​
//导包
import java.util.Scanner ;
class IfTest{
		
		public static void main(String[] args){
			
			//创建键盘录入对象
			Scanner sc = new Scanner(System.in) ;
			
			//提示并录入数据
			System.out.println("请您输入第一个数据:") ;
			int x = sc.nextInt() ;
			
			System.out.println("请您输入第二个数据:") ;
			int y = sc.nextInt() ;
			
			
			System.out.println("请您输入第三个数据:")  ;
			int z = sc.nextInt() ;
			
			
			//方式1):中间变量的方式---使用三元运算符两次实现
			int temp = (x>y)? x: y ;
			int max = (temp > z)? temp: z ;
			System.out.println("三个数据中的最大值是:"+max) ;
			
			System.out.println("-------------------------------") ;
			
			//方式2:if格式2的嵌套方式
			
			//定义一个结果变量
			int max2 ;
			if(x>y){
				//x大于y,成立
				//继续判断:在使用if...else:使用x和z进行比较
				if(x>z){
					max2 = x ; 
				}else{
					max2 = z ;
				}
				
			}else{
				//x大于y,不成立
				//继续判断,在使用if...else:使用y和z进行比较
				if(y>z){
					max2 = y ;
				}else{
					max2 = z ;
				}
			}
			
			System.out.println("三个数据中的最大值是:"+max2) ;
		}
}

​

​
//导包
import java.util.Scanner ;
class IfTetst2{
	public static void main(String[] args){
		
		//创建键盘录入对象
		Scanner sc  = new Scanner(System.in) ;
		
		//提示并录入
		System.out.println("请您输入月份的值:") ;
		int month = sc.nextInt() ;
		
		
		//使用if格式3去 *** 作
		if(month >12 || month <= 0){
			System.out.println("对不起,地球没有该月份!") ;
		}else if(month>=3 && month<=5){
			System.out.println("当前是春季") ;
		}else if(month>=6 && month<=8){
			System.out.println("当前是夏季") ;
		}else if(month>= 9 && month <=11){
			System.out.println("当前是秋季") ;
		}else{
			System.out.println("冬季!") ;
		}
	}
}

​

​
//导包
import java.util.Scanner ;
class SwitchDemo{
	public static void main(String[] args){
		
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in) ;
		
		//提示并录入数据
		System.out.println("请您输入一个数据week:") ;
		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 ;
		}
		
		
	}
}

​

面试题:
        switch中的表达式,它可以是什么样的数据类型呢?
    基本的能够使用的数据类型:
            byte,short,char,int
            JDK5以后,可以跟枚举 (enum)
            JDK7以后,可以是String类型 

switch语句中的注意事项:
            
            1)case语句后面的值只能是常量
            (在Java语言中,Java是一个强类型语言:结构和格式是非常严谨的)
            (在Javascript前端语言中,是一个弱类型语言,case后面的值既可以是常量
            ,也能够是变量;)
            
            2)case语句中的break 必须带上,否则会造成一个现象:case 穿透
                    由于某个case已经匹配了,此时如果没有break,那么就继续往下面中
                case的语句进行穿透,依次执行,遇见有case中有break的,那么switch结束!
            
            3)switch的结束条件是什么?
            
                a)语句break结束
                b)程序默认执行到末尾!
                
                
        
            4)default语句可以在语句中的任何位置,不影响程序的执行流程!
            
            default的执行,当前case中都没有匹配的话,执行default 

​

class SwitchTest{
	
	public static void main(String[] args){
		
		
		int x = 3 ;
		int y = 4 ;
		
		
		
		switch(x){//x=3
		default :
			y++ ;
		case 3: //匹配
			y ++ ; //y=4+1 = 5
		case 4 :	
			y++ ;//y=5+1 = 6
		}
		
		System.out.println("y:"+y) ;
		
		System.out.println("------------------------") ;
		int a = 3 ;
		int b = 4 ;
		
		
		switch(a){//a=3
		
			case 3:
				b++ ;
			case 5: 
				b++;
			default :
				b++ ;
				break ;
		}
		System.out.println("b:"+b) ;
		
	}
}

​

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5695360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存