java流程控制
一、IF条件语句
Java使用if语句实现分支控制,if语句有三种表达式
1. 单if条件语句
if(条件语句)
{
执行语句
}
如果条件语句值为 true,则执行 if 语句中的代码块,否则跳出执行括号之后的语句。
public class Test {
public static void main(String[] args){
int x=5;
if(x<6);
{
System.out.print("条件成立,语句被执行!");
}
}
}
运行结果
2. if-else语句
if(条件语句)
{
语句1
}else{
语句2
}
语法说明:if条件语句为真,则执行语句1,否则执行else之后的语句2
public class Test {
public static void main(String args[]){
int x = 3;
if( x < 2 ){
System.out.print("这是 if 语句");
}else{
System.out.print("这是 else 语句");
}
}
}
运行结果
3. 多重if语句
if(条件语句1{
语句1 //真的话执行该语句,否则继续执行else if语句
}else if(条件语句2){
语句2
}else if(条件语句3){
语句3
..if里面有多个else if语句,else if语句里面也有多个else if语句
此处省略,这种称为if语句的嵌套使用
}else{
语句n
}
import java.util.Scanner;
public class Text4 {
public static void main(String[] args) {
//模拟商品打折
System.out.println("请输入商品价格");
double prise = new Scanner(System.in).nextDouble();//输入商品价格
double givePrise = cutMoney(prise);//打折的过程
System.out.println("打折之后的价格为"+givePrise);
System.out.println("请输入学生成绩");
int score = new Scanner(System.in).nextInt();
showScore(score);
}
//模拟商品打折
private static double cutMoney(double p) {
if(p>5000) {
p*=0.5;
}else if(p>2000) {
p*=0.8;
}else if(p>1000){
p*=0.9;
}
return p;
}
//统计学员得分
private static void showScore(int score) {
if(score>=90){
System.out.println("该生表现优秀");
}else if(score>=80 && score<=89) {
System.out.println("该生表现良好");
}else if(score>=70 && score<=79) {
System.out.println("该生表现中等");
}else if(score>=60 && score<=69) {
System.out.println("该生表现及格");
}else {
System.out.println("该生表现不及格");
}
}
}
4. switch语句
switch 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支,其表达式如下:
switch(表达式或者某值){
case1 XX:
语句1
break;
case2 XX:
语句2
break;
case3XX:
语句3
break;
}
运行结果·
switch 语句有如下规则:
-
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
-
switch 语句可以拥有多个 case 语句。
-
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
-
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
-
当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
-
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
-
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
实例
public class Test {
public static void main(String args[]){
int i = 5;
switch(i){
case 0:
System.out.println("0");
break;
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
case 4:
System.out.println("4");
break;
case 5:
System.out.println("5");
break;
}
}
}
显而易见,值与case5语句匹配,执行语句5,遇到break语句,跳出switch语句。
二、循环结构
Java中有三种主要的循环结构:while 循环,do…while 循环,for 循环
循环三要素
- 循环变量的初始化
- 循环的判断条件
- 循环体中改变循环变量的值
1.while循环
特点,先判断,在循环
public class Test1 {
public static void main(String[] args){
int i=0;//循环变量初始化
while(i<5){//循环条件
System.out.println("我爱学习Java");
i++;//循环体中改变循环变量的值
}
}
}
运行结果
2.do-while循环
do{
循环操作
}while(循环条件);
特点:先执行语句,再判断
案例分析
public class Test1 {
public static void main(String args[]){
int i=1;
do{
System.out.println("我第"+i+"次循环");
i++;
}while( i < 6 );
}
}
运行结果
while语句和都do-while语句的区别
while语句先判断语句再执行语句,而do-while语句先执行语句再判断,而且至少执行一句语句
共同点:条件语句为假之后跳出循环体
3.for循环
特点:循环次数固定
语法:
for(表达式1(循环变量初始化);表示式2(判断条件);表达式3(更新循环变量)){
执行语句
}
public class Test1 {
public static void main(String args[]){
for(int i=1;i<=5;i++){//中间用分号隔开
System.out.println("我第"+i+"次循环");
}
}
}
运行结果
4.九九乘法表案例分析
public class for_1 {
public static void main(String[] args){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
详细分析
public class for_1 {
public static void main(String[] args){
for(int i=1;i<=9;i++){//这里进入i变量的循环i=1,最大循环9次
for(int j=1;j<=i;j++){//这里进入j变量的循环,j=1,将j与i做比较
System.out.print(j+"*"+i+"="+j*i+"\t");//到这里执行第2个for循环里面的语句,实现
1*1=1,然后j自增变成2,不满足j<=i条件,跳出第2个for循环,并打印出1*1
}
System.out.println();//执行第一个for循环的语句,这里实现换行的作用
//然后返回第一个for循环,i自增变成了2,往下执行到了第2个for循环,这里j=1,i=2,输出打
印1*2=2,然后j自增变成2,j<=i任然成立,输出打印2*2=4,然后j自增变成3,3<=2不成立,
跳出第2个for循环,这样依次循环,注意的是,第2个for循环要循环完才能跳出来,这样每次循环
的时候第一个for循环只执行一次,而第2个for循环循环多次,以达到九九乘法表的打印
}
}
}
运行结果
5.break 关键字和continue 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块,continue 适用于任何循环控制结构中。并且只能用于循环里,作用是让程序立刻跳转到下一次循环的迭代。
import java.util.Scanner;
public class continue_1 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);//扫描仪的使用,从键盘输入
while(true){
System.out.println("请输入你的密码:");//从键盘输入你的密码
int passworld=in.nextInt();//声明变量接受密码
if(passworld!=123456){//该条件表示如果密码不等于正确密码则执行以下语句
continue;//密码不正确,跳出本次循环,执行下一次循环,继续输入密码
}
break;//终止该循环,若输入密码正确,不执行if之后的语句,使用break语句终止该循环
}
System.out.println("密码正确");
}
}
运行结果