
选择结构语句
//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条)