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跳出本次循环,除跳过之外其他地方正常输出