4.2 条件语句
条件语句可根据不同的条件执行不同的语句。
4.2.1 if条件语句
if条件语句是用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”。如果该表达式返回的结果为true,则执行其后的语句;如果为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句、if...else 语语句和 if...else if多分支语句。
1、简单的if条件语句
public class TakePhone {
public static void main(String[] args) {
// TODO Auto-generated method stub
int phoneNumber=123456789;//创建变量,保存电话号码 //创建变量,保存电话号码
if(phoneNumber!=84972266) {//如果此电话号码不是84972266 //如果此电话号码不是84972266
System.out.println("对不起,您拨打的号码不存在!");//提示号码不存在
}
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/99b77c92887afeb5856e7751e91d74c6.png)
流程图:
![](https://i-blog.csdnimg.cn/blog_migrate/aca7a40e42863a95e4e5b374ccaf76f3.png)
2、if...else语句
if...else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为”如果满足某种条件,就进行某种处理,否则就进行另一种处理。”
![](https://i-blog.csdnimg.cn/blog_migrate/3a69af12b62c368ef9167ad7a41f43d2.jpeg)
public class Login {
public static void main(String[] args) {
// TODO Auto-generated method stub
int password=987654321;//密码值
if(123456789==password) {//如果密码是123456789
System.out.println("密码正确,欢迎登录");//密码正确的提示
}else { //否则
System.out.println("密码错误,拒绝登录");//密码错误的提示
}
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/a7b2b10a6eb74476a9cbb34b9ac65af7.png)
流程图:
![](https://i-blog.csdnimg.cn/blog_migrate/a2fd63a16ff9163504b803231f817371.png)
3、if...else if多分支语句
通常表现为“如果满足满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理”。
![](https://i-blog.csdnimg.cn/blog_migrate/f1630dec053d45630170913838bc0d1b.jpeg)
public class Restaurant {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎光临,请问有多少人用餐?");//输出问题提示
int count=9; //用餐人数
System.out.println("回答:"+count+"人"); //输出回答
if(count<=4) { //如果人数小于4人
System.out.println("客人请到大厅4人桌用餐");//请到4人桌
}else if(count>4&&count<=8) { //如果人数在4-8人
System.out.println("客人请到大厅8人桌用餐");//请到8人桌
}else if(count>8&&count<=16) { //如果人数在8-16人
System.out.println("客人请到楼上包厢用餐");//请到包厢
}else { //当以上条件都不成立时,执行该语句
System.out.println("抱歉,我们店暂时没有这么大的包厢!");//输出信息
}
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/a14fe760cc94c0e9419d9dc35089413b.png)
流程图:
![](https://i-blog.csdnimg.cn/blog_migrate/bb63c8f10a54065c44c59b2657ef4a41.jpeg)
4.2.2 switch多分支语句
switch语句中表达式的值必须是整型、字符型、字符串类型或枚举类型,常量值1-n的数据类型必须与表达式的值的类型相同。
创建Grade类,使用Scanner类在控制台输入分数,然后用switch多分支语句判断输入的分数属于哪类成绩。10分和9分属于优,8分属于良,7分和6分属于中,5分、4分、3分、2分、1分以及0分均属于差。
import java.util.Scanner;//引用Scanner类
public class Si {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);//创建扫描器,接收控制台输入内容
System.out.print("请输入成绩:");//输入字符串
int grade=sc.nextInt();//获取控制台输入的数字
switch(grade) {//使用switch判断数字
case 10://如果等于10,则继续执行下一行代码
case 9://如果等于9
System.out.println("成绩为优");//输入"成绩为优"
break;//结束判断
case 8://如果等于8
System.out.println("成绩为良");//输入"成绩为良"
break;//结束判断
case 7://如果等于7,则继续执行下一行代码
case 6://如果等于6
System.out.println("成绩为中");//输出"成绩为中"
break;//结束判断
case 5://如果等于5,则继续执行下一行代码
case 4://如果等于4,则继续执行下一行代码
case 3://如果等于3,则继续执行下一行代码
case 2://如果等于2,则继续执行下一行代码
case 1://如果等于1,则继续执行下一行代码
case 0://如果等于0
System.out.println("成绩为差");//输出"成绩为差"
break;//结束判断
default://如果不符合以上任何一个结果
System.out.println("成绩无效");//输出"成绩无效"
}
sc.close();//关闭扫描器
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/dac3fb7c161842b24f24dce4146e708c.png)
流程图:
![](https://i-blog.csdnimg.cn/blog_migrate/6c01924be4a925a7c20b50845c2a99a1.jpeg)
4.3 while循环语句
4.3.1 while循环语句
while 语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。
是条件判断语句,当表达式的返回值为真是,则执行语句,重新判断条件表达式的返回值,知道返回值的结果为假时,退出循环。
语法:
while(条件表达式){
语句序列
}
![](https://i-blog.csdnimg.cn/blog_migrate/8bf49f1987ffed83ed044843b8c6c20e.png)
4.3.2 do...while循环语句
do...while循环语句:与while循环语句相似,区别在于while语句先判断条件是否成立再执行循环体。
do...while循环语句先执行一次循环后,在判断条件是否成立。
语法:
do{
语句序列
}while(条件表达式)
![](https://i-blog.csdnimg.cn/blog_migrate/79de7f289a40eed0b4c77fb8aec2fc90.png)
4.3.3 for循环语句:
for循环时Java程序设计中最有用的循环语句之一。可以用来重复执行某条语句,直到某个条件得到满足。
语法:
for(表达式1;表达式2;表达式3){
语句序列
}
![](https://i-blog.csdnimg.cn/blog_migrate/d3bd9ea6cc252216483d445c9ab3aa01.png)
while和do...while循环嵌套
![](https://i-blog.csdnimg.cn/blog_migrate/e400bcddd8c983bbfac63e9ccf4fecbf.png)
do...while和while循环嵌套
![](https://i-blog.csdnimg.cn/blog_migrate/ace57746f5f9bd0b97feb5701ee6712f.png)
课堂作业:for和while循环嵌套 、do...while和for循环嵌套的流程图
![](https://i-blog.csdnimg.cn/blog_migrate/3802b6d7a65d339e5589119adc5fbf40.jpeg)
4.4循环控制
break语句:
跳出当前循环
public class BreakTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<20;i++) {
if(i%2==0) {//如果i是偶数
System.out.println(i);//输出i的值
break;//结束循环
}
}
System.out.println("--end--");//结束时输出一行文字
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/2edc3bd49aff22bf007a21c0238ad0cb.png)
流程图:
![](https://i-blog.csdnimg.cn/blog_migrate/a781f9bcd7818470737c421f3867439b.png)
continue语句
continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环。
public class BreakTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=20;i++) {
if(i%2==0) {//如果i是偶数
continue;//跳到下一循环
}
System.out.println(i);//输出i的值
}
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/458285a2b005530829977afa8e5bdd2a.png)
流程图:
![](https://i-blog.csdnimg.cn/blog_migrate/275abc0609a3d1218f86983a5c205ab1.png)