引言:今天主要学习分支语句这一大类,所以先说说都有哪些语句.
首先分为三类:
1.顺序语句:程序自上而下依次运行
2.分支语句:从多个分支中选择一个执行
3.循环语句:多次循环一段程序
分支语句(判断选择)
if
1.if基础语法
if(条件表达式){
代码1
}
执行逻辑:当条件表达式为真时,执行代码1
例:
int x = 3
if(x>1){
System.out.println(x);
}
输出结果:3
2.if else
if(条件表达式){
代码1
}else{
代码2
}
执行逻辑:当条件表达式为真时,执行代码1,反之执行代码2
例:体重超过200可以参加相扑运动
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的体重:");
int weight = scanner.nextInt();
if( weight >200) {
System.out.println("可以参加相扑运动!");
}else {
System.out.println("生命安全最重要!");
}
}
}
输入:300
输出:可以参加相扑运动!
3.if else if
if(条件表达式1){
代码1
}else if(条件表达式2){
代码2
}
..........
else if(条件表达式n){
代码n
}else{
当以上条件表达式都不为真时,执行此处代码;
}
执行逻辑:当条件表达式1为真时,执行代码1,当条件表达式2为真时,执行代码2.....
例:
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
System.out.println("请输入你的成绩");
int x = sca.nextInt();
if (x >100) {
System.out.println("吃我大嘴巴子");
}else if (x <=100&& x > 85) {
System.out.println("成绩为:A");
}else if (x >70) {
System.out.println("成绩为:B");
}else if (x >60) {
System.out.println("成绩为:C");
}else if (x >0) {
System.out.println("成绩为:D");
}else {
System.out.println("成绩有误!");
}
}
}
输入:100
输出:成绩为:A
4.if的嵌套
语法:在if语句中再加入if语句
例:
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
System.out.println("请输入消费金额:");
double x = sca.nextDouble();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入是否为会员?(是/不是)");
String y = scanner.next();
//金额是否大于200
if (x >=200) {
double money = x * 0.8;
//是否为会员
if (y == "是") {
double money01 =0.8*money;
System.out.println("本次应付金额:"+x+"元");
System.out.println("本次实付金额:"+money01+"元");
System.out.println("本次优惠金额:"+(x-money01)+"元");
}else {
double money01 =money;
System.out.println("本次应付金额:"+x+"元");
System.out.println("本次实付金额:"+money01+"元");
System.out.println("本次优惠金额:"+(x-money01)+"元");
}
//不满200
}else {
double money = x;
//是否为会员
if (y == "是") {
double money01 =0.8*money;
System.out.println("本次应付金额:"+x+"元");
System.out.println("本次实付金额:"+money01+"元");
System.out.println("本次优惠金额:"+(x-money01)+"元");
//不是会员
}else {
double money01 =money;
System.out.println("本次应付金额:"+x+"元");
System.out.println("本次实付金额:"+money01+"元");
System.out.println("本次优惠金额:"+(x-money01)+"元");
}
}
}
}
输入:200,是
输出:本次应付金额:200.0元
本次实付金额:160.0元
本次优惠金额:40.0元
注意:1.else if:可以有多个,也可以没有
2.else 可有可无
3.分支语句中只会选择其中一个执行,如果上面的条件表达式为真,将不在判断下面的条件表达式
4.分支语句中可以使用分支语句
switch
语法:
switch(变量){
case 常量1:
当变量与常量1相等时,执行此段代码;
break;
case 常量2:
当变量与常量2相等时,执行此段代码;
break;
........
case 常量n:
当变量与常量n相等时,执行此段代码;
break;
default:
当变量与其他常量都不同时,执行此段代码;
break;
}
例:
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
System.out.println("输入操作数");
int tag = sca.nextInt();
switch (tag) {
case 1:
System.out.println("进入登录");
break;
case 2:
System.out.println("进入注册");
break;
case 3:
System.out.println("忘记密码");
break;
default:
System.out.println("暂无此操作");
break;
}
}
}
输入:1
输出:进入登录
常量:java文件编译为class文件后,不能被修改和改变的值或变量
代码块:{}就是一个代码块
break:跳出代码块
注意:
1.default可有可无
2.case可以有多个,也可以没有
3.多个case的常量值不能相同
4.break可以不写,但是代码会出现贯穿,直到遇见break才会结束
5.jdk1.5及以后支持判断字符串内容是否相同
if与switch的区别
if可以比较一个区域值的大小,还可以比较值是否相同;switch只能比较值是否相同
switch相比于if效率稍微高一些
判断字符串内容是否相同
语法:
boolean 变量名 = 字符串变量或字符串值1.equals(字符串变量或字符串值2);
如果返回值true,则字符串值1与字符串值2相同;
如果返回值false,则字符串值1与字符串值2部相同;
局部变量
在方法中声明的变量就是局部变量
在方法外,类中声明的变量为成员变量(属性)