java流程控制语句控制语句分为顺序结构,选择结构,循环结构
1.顺序结构
绝大部分代码都是从上往下从左往右依次执行
/*
顺序结构
*/
class JavaDemo{
public static void main(String[] args) {
//
System.out.println("欢迎来到英雄联盟");
System.out.println("敌军还有30s到达战场");
System.out.println("全军出击!!!");
System.out.println("FirstBlood!!!");
System.out.println("Victory!!!");
}
}
2.选择结构
if语句(经常使用)
if语句格式1
/*
if语句格式1
if(表达式){
语句体;
}
执行流程:先去计算表达式的值,如果是true就执行语句体,如果是false就跳过if语句
*/
class IfDemo{
public static void main(String[] args) {
//衣服的价钱
int price=1999;
//银行卡余额
int money=999;
//做判断
if(money>price)
//语句体只有一句话时就可以省略{} 紧跟if的一句,就是if的语句体
System.out.println("买买买");
//
System.out.println("逛完了。。。");
}
}
if语句格式2
/*
if语句格式2
if(表达式){
语句体1;
}else{
语句体2;
}
执行流程:先去计算表达式的值,如果true就执行语句体1,如果是false就执行语句体2
如果if语句返回的结果也是值就和三目等效
*/
class IfDemo2{
public static void main(String[] args) {
//求两个整数的最大值
/*int a=3;
int b=5;
if(a>b){
System.out.println(a);
}else{
System.out.println(b);
}*/
//求三个整数的最大值
int x=1;
int y=2;
int z=3;
//if语句嵌套
if(x>y){
if(x>z){
System.out.println(x);
}else{
System.out.println(z);
}
}else{
if(y>z){
System.out.println(y);
}else{
System.out.println(z);
}
}
}
}
if语句格式3
/*
if语句格式3
if(表达式1){
语句体1;
}else if(表达式2){
语句体2;
}else if(表达式3){
语句体3;
}
...
else{
语句体n+1;
}
执行流程:先去计算表达式1的值,如果是true就执行语句体1,如果是false就去计算表达式2的值,如果是true就执行语句体2,如果是false就去计算表达式3的值,如果是true就执行语句体3,如果表达式的值都是false就执行语句体n+1
测试数据类型:1.正确数据 2.边界数据 3.错误数据
*/
import java.util.Scanner;
class IfDemo3{
public static void main(String[] args) {
//根据输入的星星判定你的等级
//找到Scanner
Scanner sc=new Scanner(System.in);
//获取数据
int xing=sc.nextInt();
if(xing>0&&xing<10){
System.out.println("白丁");
}else if(xing>=10&&xing<20){
System.out.println("倔强青铜");
}else if(xing>=20&&xing<30){
System.out.println("不屈白银");
}else if(xing>=30&&xing<60){
System.out.println("钻石");
}else if(xing>=60&&xing<=100){
System.out.println("最强王者");
}else{
System.out.println("输入数据有误!!!");
}
}
}
switch语句
/*
switch语句
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程:先去计算表达式的值,依次和所有的case的值进行比较如果相等就执行对应的语句体执行break结束语句,如果所有的case值都不满足就执行语句体n+1执行break结束语句
注意:
1.switch语句的表达式支持的数据类型有byte、short、char以及int 在jdk1.5之后允许使用枚举类型 在jdk1.7以后支持String类型
2.case后面的值是常量而且不能重复
3.default跟位置没有关系,可以省略---选择题
4.如果省略break就会出现case穿透效果
5.结束的标志:1.遇到break 2.执行到代码最后一行
*/
import java.util.Scanner;
class SwitchDemo{
public static void main(String[] args) {
//输入整数输出对应的星期
//找到Scanner
Scanner sc=new Scanner(System.in);
//获取数
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;
}
}
}
3.循环结构
for循环
/*
for循环
格式
for(初始值;判断条件;控制条件){
循环体;
}
执行流程:先拿初始值和判断条件进行比较,如果结果是true就去执行循环体,再去执行控制条件再去和判断条件进行比较如果是true执行循环体,再去执行控制条件,再去做判断如果还是true就重复上述操作直到比较的结果位false就结束循环
*/
class ForDemo{
public static void main(String[] args) {
//打印10行helloworld
for(int i=0;i<10;i++){
System.out.println("helloworld");
}
}
}
while循环
/*
while循环
格式
while(表达式){
循环体;
}
一般格式
初始值;
while(判断条件){
循环体;
控制条件;
}
执行流程:先拿初始值和判断条件进行比较,如果结果是true就去执行循环体,再去执行控制条件再去和判断条件进行比较如果是true执行循环体,再去执行控制条件,再去做判断如果还是true就重复上述操作直到比较的结果是false就结束循环
*/
class WhileDemo{
public static void main(String[] args) {
//打印10行helloworld
int i=1;
while(i<=10){
System.out.println("helloworld");
i++;
}
}
}
do…while循环
/*
do...while循环
格式
do{
循环体;
}while(判断条件);
一般格式
初始值
do{
循环体;
控制条件;
}while(判断条件);
执行流程:执行循环体,执行控制条件,再去和判断条件进行比较如果是true就执行循环体,在执行控制条件再和判断条件进行比较如果式true就重复上述操作,直到为false就结束循环
*/
class DoWhileDemo{
public static void main(String[] args) {
//打印10行helloworld
int i=1;
do{
System.out.println("helloworld");
i++;
}while(i<=10);
}
}
循环结构总结:
1.三者可以等价转换(首选for其次是while最后是do while)
2.do while最少执行一次
3.for循环的初始值循环外不能使用
4.死循环