Java基础——流程控制
补充:
Ⅰ,局部变量
定义:在函数内部定义的变量
特点:
①先赋值后使用
②作用范围:从定义这个变量开始到定义这个变量的代码块结束
③在重合范围内,不允许两个局部变量命名发生冲突
package p3; public class TestLocalVar{ public static void main (String [] args){ int a; a=10; //先赋值后使用,如果不把10赋值给a,后面的a将无法使用 { int b=10; System.out.println(b); //作用范围:从定义这个变量开始到定义这个变量的代码块结束,在这个代码块之外,这个b就没用了 } System.out.println(a); } { int b=19; System.out.println(b); } { int b=18; System.out.println(b); //在重合范围内,不允许两个局部变量命名发生冲突,这两个b不在同一代码块 } }
Ⅱ,读入数据
借助Java语言的工具类:java.util.Scanner。
package p3; import java.util.Scanner; public class TestScanner{ public static void main(String []args){ Scanner sc= new Scanner(System.in); //创建一个Scanner对象,为读入数据做准备 System.out.println("请输入一个字符串:"); String str=sc.nextLine(); //读入字符串 System.out.println("请输入一个整数:"); int i=sc.nextInt(); //读入整数 System.out.println("请输入一个小数:"); double d=sc.nextDouble(); //读入浮点数 System.out.println(str+i*d); } }
运行时可以在控制台上输入数据,结果如下
一、条件分支流程
条件满足就执行,条件不满足不执行
1,Ⅰ,if(布尔表达式){
代码块
}
布尔表达式为true,执行代码块的代码
布尔表达式为false,不执行代码块的代码
Ⅱ,if(布尔表达式){
代码块①
}else{
代码块②
}
布尔表达式为true,执行代码块①的代码
布尔表达式为false,执行代码块②的代码
代码块①②不会同时执行
Ⅲ,if(布尔表达式){
代码块
}else if(布尔表达式){
代码块
}else{
代码块
}
示例代码:
package p3; import java.util.Scanner; public class TestIf{ public static void main(String []args){ System.out.print("请输入一个整数:"); Scanner sc=new Scanner(System.in); int i=sc.nextInt(); if(i>2){ System.out.println(i+"大于2!"); }else if(i=2){ System.out.println(i+"等于2!"); }else{ System.out.println(i+"小于2!"); } } }
2,switch(表达式){
case value1:语句1;break;
case value2:语句2;break;
case value3:语句3;break;
……………………
case valueN:语句N;break;
default:语句t; break;
}
注意:
1,default位置不限制。
2,switch(表达式),表达式只允许整型表达式 byte、short、int、char
package p3; import java.util.Scanner; public class TestSwitch{ public static void main(String []args){ System.out.print("请输入一个1~5的整数:"); Scanner sc=new Scanner(System.in); int i=sc.nextInt(); switch(i){ case 5:System.out.println("优秀!");break; case 4:System.out.println("良好。");break; case 3:System.out.println("及格。");break; case 2: case 1:System.out.println("不及格!");break; default:System.out.println("成绩输入有误!");break; } } }
二、循环流程
1,while(布尔表达式){
循环体
}
循环体要执行0~n次,不确定循环
示例代码:
package p3; public class TestWhile{ public static void main(String[] args){ int i = 0;//初始化初值 while(i<=10){//循环条件 System.out.println(i); i++;//循环增量,迭代操作 } System.out.println("循环结束"+i); } }
2,do{
循环体
}while(条件);
循环体要执行1~n次,不确定循环
示例代码:
package p3; public class TestDoWhile{ public static void main(String[] args){ int i = 0;//初始化初值 do{//循环体 System.out.println(i); i++;//循环增量 }while(i<=10);//判断条件,作用于下一次循环,判断是否执行下一次 } }
3,for(①赋值语句;②条件语句;③一般是对循环变量的自加或自减){
④循环体
}
循环顺序①②③④②④③……
优点:1,简洁
2,适合在确定循环上,事先知道循环几次上使用
共同点:都能完成循环逻辑,但各有优缺点
示例代码:
package p3; public class TestFor{ public static void main(String[] args){ for(int i=0;i<=10;i++){ System.out.println(i); } int i = 0; for(i=1;i<10;i++){ System.out.println(i); } System.out.println("最终值"+i); for(int j=10;j>=0;j--){ System.out.println(j); } /* 初始化初值,只有在第一次执行循环时运行 int i = 0;只在{}以内生效 循环条件,每次循环体代码执行之前都要判断 循环增量,每次循环体代码执行完毕之后才执行迭代操作 */ } }
4,break和continue
break跳出循环,循环直接结束
continue跳出本次循环,除跳过之外其他地方正常输出