Java流程控制
  • 用户交互Scanner
  • 顺序结构
  • 选择结构
  • 循环结构
  • break & continue

Scanner对象

  • next()
    • 一定要读取到有效字符后才可以结束输入
    • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
    • 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
    • next()不能得到带有空格的字符串
  • nextLine()
    • 以Enter为结束符,也就是说,nextLine()方法的返回是输入回车之前的所有字符
    • 可以获得空白
//基本用法
Scanner s = new Scanner(System.in);
//判断用户是否有输入的数据
if(s.hasNext()){//从空格隔开
    String str = s.next();//使用next方式接受
}
if(s.hasNextLine()){  //接受输入的一行
    String str = s.next();//使用next方式接受
}
s.close();

顺序结构

  • 若干个依次执行的语句,它是任何程序都不能够离开的基本结构

选择结构

  • if单选择结构
  • if双选择结构
  • if多选择结构
  • 嵌套的if结构
  • switch多选择结构

if单选择结构

if(布尔表达式){
//如果为布尔表达式为true才会执行
}else{
    //为false执行
}

if双选择结构

if(布尔表达式1){
    
}else if(布尔表达式2){
    
}else{

}  //最终只会执行一个选择

嵌套的if结构

if(布尔表达式1){
	if(布尔表达式2){
        
    }
}

switch多选择结构

//switch语句中的变量类型可以是
//byte,short,int 或char
//从JavaSE7 开始
//switch支持字符串String类型了
//同时case标签必须为字符串常量或字面量
switch(expression){
	case value:
		break;
	case value:
		break;
	default:
}

循环结构

  • while循环
  • do...while循环
  • for循环
  • 在Java5中引入了一种主要用于数组的增强的for循环

while循环

//先判断后执行
while(布尔表达式){
}

do...while循环

//即使不满足条件,也会执行一次
//先执行后判断
do{

}while();

for循环

for(初始化;布尔表达式;更新){
	//代码语句
}

增强for循环(主要用来遍历数组和集合对象)

for(声明语句:表达式){
	//执行语句
}

int[] numbers = {10,20,30};//定义了一个数组
for(int x : numbers){
    System.out.println(x);
}

break & continue

//break用来结束循环,强制退出循环
int i = 1;
while(true){
    i++;
    if(i == 30){
        break;
    }
    System.out.println("循环结束");//执行到break后跳到这里
}
//continue用来结束本次循环
int i = 1;
while(true){
    i++;
    if(i == 30){
        continue;//执行continue后继续执行循环
    }
    System.out.println("循环结束"); 
}

//goto为java的保留字
int i = 1;
outer: while(true){
    i++;
    if(i == 30){
        continue outer;//执行continue后跳到outer
    }
    System.out.println("循环结束"); 
}