-
if条件分支语句
-
switch分支语句
0、课程回顾
1、三大类8小类基本数据类型
2、String字符串(引用类型)的基本使用
3、运算符使用,位运算符(了解)算术运算符,赋值运算符,比较运算符(结果是布尔值)
逻辑运算符(判断真假)&& ,||, !,
自增一或自减一 ++ ,--,
三目运算:有三个部分组成,用于简化if双分支语句
4.关于java数据类型转换
5.键盘扫描对象Scanner
/**
*数据类型,运算符练习
*/
import java.util.*;
public class MyView{
public static void main(String[]args){
//1.数据类型的声明与定义
Scanner sc =new Scanner(System.in);
System.out.print("请输入姓名:");
String name =sc.next();//等待用户输入数据
System.out.print("请输入高数成绩:");
double math=sc.nextDouble();
System.out.print("请输入企管成绩:");
double manager=sc.nextDouble();
System.out.print("请输入政经成绩:");
double zj=sc.nextDouble();
计算平均分与总分
double total=math+manager+zj;
double avg=total/3;
System.out.println("姓名\t\t"+"高数\t\t"+"企管\t\t"+"政经\t\t"+"平均分\t\t"+"总分");
System.out.println(name+"\t\t"+math+"\t\t"+manager+"\t\t"+zj+"\t\t"+avg+"\t\t"+total);
}
}
一、if条件(分支)语句
前言:计算机程序中的代码在执行的时候是有顺序的并且有重复执行的情形,我们称之为控制流程,相应的有对应的语句,一般分为三种空置语句:选择(条件/分支)语句、循环语句、跳转语句
1.1 if条件语句
一般if语句又有:if单分支;if双分支;if多分支;if嵌套分支
作用:根据不同的条件决定代码的执行的方向(流程)
1.1.1if单分支
格式:
//条件:关系表达式,布尔型变量,也可以的直接是一个布尔值(不常用)
if(条件){//条件执行体
//满足条件后执行的代码
}
//执行其他代码
说明:当if中的条件为真执行条件体中的语句,执行完成后,在执行后续的语句,当if的条件为假,则不执行条件中语句,直接跳到后续的语句
/**
*if 单分支语句
*/
import java.util.*;
public class myif{
public static void main (String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入颜值:");
int face=sc.nextInt();
if(face>80){
System.out.println("侯文静,美呆了!");
}
System.out.println("恭喜发财");
//如果满足条件后,条件体中只执行一条语句,可以不用{},直接写出那一条语句
System.out.println("请输入婚否:");
boolean flag=sc.nextBoolean();
if (flag)
System.out.println("恭喜你");
System.out.println("揍你!");
}
}
/**
*if 单分支语句
*/
import java.util.*;
public class myif{
public static void main (String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入颜值:");
int face=sc.nextInt();
if(face>80){
System.out.println("侯文静,美呆了!");
}
System.out.println("恭喜发财");
//如果满足条件后,条件体中只执行一条语句,可以不用{},直接写出那一条语句
System.out.println("请输入婚否:");
boolean flag=sc.nextBoolean();
if (flag)
System.out.println("恭喜你");
System.out.println("揍你!");
}
}
/**
*if双分支语句
*/
import java.util.Scanner;
public class MyIf2{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.print("婚否:");
boolean hf =sc.nextBoolean();
if(hf){//相当于是hf==true,为真执行此处的代码
System.out.print("恭喜你!");
System.out.print("红包拿来!");
}else{//为假执行此处
System.out.println("快乐的单身汉!");
}
}
1.1.3 if多分支语句
格式:
if(条件1){
//语句体1
}else if(条件2){
//语句体2
}else if(条件3){
//语句体3
}else{//当以上条件都不对时,执行此处的代码,else有时候可以不用,它是可选的
}
/**
*if多分支语句
*/
import java.util.Scanner;
public class MyIf3{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的成绩:");
int score=sc.nextInt();
if(score>80){
System.out.println("优");
}else if(score<=80&&score>60){
System.out.println("良");
}else if(score<=60&&score>40){
System.out.println("中");
}else{
System.out.println("差");
}
}
}
/**
*if多分支语句
*/
import java.util.Scanner;
public class MyIf4{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
double salsry=8000;
int year=0;
System.out.println("请输入你的工龄:");
year=sc.nextInt();
if(year>=10){
//salary=salsry+salary*0.15;
salsry+=salary*0.15;
}else if(year>=8)&&(year<10){
salsry+=salary*0.1;
}else if(year>=5)&&(year<8){
salsry+=salary*0.08;
}else if(year>=2)&&(year<5){
salsry+=salary*0.06;
}else{
salsry+=salary*0.05;
}
//输出最新工资
System.out.print("当前的工资:"+salsry);
}
}
/**
*if多分支语句
*/
import java.util.Scanner;
public class MyIf4{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
double salsry=8000;
int year=0;
System.out.println("请输入你的工龄:");
year=sc.nextInt();
if(year>=10){
//salary=salsry+salary*0.15;
salsry+=salary*0.15;
}else if(year>=8)&&(year<10){
salsry+=salary*0.1;
}else if(year>=5)&&(year<8){
salsry+=salary*0.08;
}else if(year>=2)&&(year<5){
salsry+=salary*0.06;
}else{
salsry+=salary*0.05;
}
//输出最新工资
System.out.print("当前的工资:"+salsry);
}
}
/**
*if嵌套
*/
import java.util.*;
public class MyQa{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入成绩:");
int score=sc.nextInt();
String gender="";
//说明:基本数据类型的相等判断可以用==,两个字符串的相等判断用“男”.equals(str)方法
//男.equals(str);//建议使用
//str.equals("男");//不建议用
if(score>95){
System.out.println("你可以参加奥赛!");
System.out.println("请输入性别:");
gender=sc.next();//用于接受用户的数据,并转换成字符串。
if("男".equals(gender)){//gender.equals("男")
System.out.println("你参加男子组竞赛!");
}else{
System.out.println("你参加女子组竞赛!");
}
}else{
System.out.println("遗憾!");
}
}
}
二、Switch分支语句(开关语句)
提示:Switch用于代替if多分支语句,但是必须是带有序列的数据,
比如:一个星期,四季 1 2个月等
格式:
//"A" 字符串 ’A‘,字符型
switch(变量){//变量的类型只能是整型,字节型,字符型,字符串
case值1:
//语句
break;
case值2:
//语句
break;
case值3:
//语句
break;
case值4:
//语句
break;
case值5:
//语句
break;//.....
default://如果变量没有任何一个case对应的值相匹配,则执行此处代码(也可以没有default操作)
}
/**
*Switch分支语句,有时候代替if..else if..else if..else if..else 语句
*/
import java.util.*;
public class MY{
public static void main (String[]args){
Scanner sc=new Scanner(System.in);
//星期一到星期六2,3,4.5,6,7,星期日1
System.out.println("请输入星期的数字:");
int week=sc.nextInt();
switch(week){
case 2:
System.out.print("星期一");
break;
case 3:
System.out.print("星期二");
break;
case 4:
System.out.print("星期三");
break;
case 5:
System.out.print("星期四");
break;
case 6:
System.out.print("星期五");
break;
case 7:
System.out.print("星期六");
break;
case 1:
System.out.print("星期日");
break;
default:
System.out.print("输入有误");
break;
}//switch
}//main
}
实战练习
1、如果年龄够7岁,或者年龄够5岁并且性别是“男”,就可以搬动桌子
2、从键盘输入一个整数,判断是否能被3或者被5整除。能的话输出:
"该数是3或5的倍数",否则输
出:
"该数不能被3或5中的任何一个数整除"
3、用户输入两个数a和b,如果a能被b整除或者a加b大于100,则输出a,否则输出b。
4、按照年龄划分,60以上是老年人,40-60是中年人,20-40青年人,10-20青少年,10岁以下儿童。(分别使
用多重if和switch语句实现)
5、需求说明:
会员购物时,根据输入积分的不同享受不同的折扣
计算会员购物时获得的折扣输出实付金额
会员积分x 折扣
x < 2000 9折
2000 ≤ x < 4000 8折
4000 ≤ x < 8000 7折
x ≥ 8000 6折
6、张三为他的手机设定了自动拨号
按1:拨爸爸的号
按2:拨妈妈的号
按3:拨爷爷的号
按4:拨奶奶的号