选择结构语句
//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) ; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)