day01-java流程控制

发布时间 2023-10-12 17:52:44作者: echory3

用户交互Scanner

java.util.Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入。

Scanner s = new Scanner(System.in);

//通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
import java.util.Scanner;

public class Hello {
   public static void main(String[] args) {
       //创建一个扫描器对象用于接收键盘数据
       Scanner scanner = new Scanner(System.in);

       System.out.println("使用next方式接收: ");

       //判读用户有没有输入字符串
       if(scanner.hasNext()){
           String str = scanner.next();
           System.out.println(str);
      }

       //凡事属于io流的类如果不关闭就会一直占用资源,用完就关闭
       scanner.close();
  }
}

 

next()

  1. 一定要读取带有效字符后才可以结束输入

  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去除

  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

  4. next()不能得到带有空格的字符串

 

nextLine()

  1. 以Enter为结束符

  2. 可以获得空白

 

选择结构

if单选择结构

if(布尔表达式){
   //如果布尔表达式结果为ture运行
}else{
   //如果布尔表达式结果为false运行
}

 

if多选择结构

if(布尔表达式1){
   //如果布尔表达式1结果为ture运行
}
else if(布尔表达式2){
   //如果布尔表达式2结果为ture运行
}
else if(布尔表达式3){
   //如果布尔表达式3结果为ture运行
}
else{
   //如果以上布尔表达式都不为ture执行代码
}

//一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行

 

switch选择结构

switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

//jdk7之后,表达式结构可以是字符串

switch(expression){
   case value: //value必须是字符串常量或字面量以及枚举变量
       //语句
       break;//跳出选择
   case value:
       break;
   default:
       //语句 都不是的时候
       break;
}

 

循环结构

while循环

while(布尔表达式){
  //循环内容
}

 

do while循环

do while循环至少循环一次

do{
  //循环内容
}while(布尔表达式)

 

for循环

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

 

增强for循环

for(声明语句:表达式){
   //代码句子
}

/*
int a[] = {10, 20, 30, 40, 50};
for(int x; a){
   //代码
}
*/

 

break、continue

break用于强行退出循环,不执行循环中剩余的语句。

continue语句用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着执行下一次是否执行循环的判定。

 

goto

java没有goto,但可以用带标签的break和continue实现一部分goto功能

标签是指后面跟一个冒号的标识符(lable:)

对于java来说唯一用到标签的地方是在循环语句之前。在循环之前设置标签唯一的理由是:我们希望在其中嵌套另一个循环。

int count = 0;

outer:for(int i = 101; i < 150; i++){
   for(int j = 2; j < i / 2; j++){
       if(i % j == 0){
           continue outer;
      }
  }
}