Java流程控制 ---- 基础阶段

Java流程控制 ---- 基础阶段

1. 用户交互Scanner

Scanner 对象

  • Scanner 是Java给我们提供实现人机交互的一个工具类,我们可以获取用户的输入。java.util.Scanner 是 Java5的新特性,我们可以通过 Scanner 类来获取用户的输入。
  • 基本语法:
Scanner s = new Scanner(System.in);
  • 通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据。
  • 一个简单的运用:
        //创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);

		//1.使用next 方式接收输入
        System.out.println("使用 Next 方式接收:");
        String str = scanner.next();	//当执行到此行时,会等待用户输入完毕才执行下一段
       	System.out.println("输出的内容为:"+ str);
           
        //2.使用nextLine 方式接收输入
        System.out.println("使用 NextLine 方式接收:"); 
        String str2 = scanner.next();
       	System.out.println("输出的内容为:" + str2);

       	//凡是属于IO流的类如果不关闭会一直占用资源,需要在使用完后就关掉
        scanner.close();
  • Next() 和 NextLine() 的区别
  1. next()
    • 一定要读取到有效字符后才可以结束输入。
    • 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
    • 只有输入有效字符后才能将其后输入的空白作为分隔符或结束符
    • next() 不能得到带有空格的字符串
  2. nextLine()
    • 以 Enter 为结束符,也就是说 nextLine() 方法返回的是输入回车之前的所有字符。
    • 可以获得空白。

2. 顺序结构

  1. Java的基本机构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
  2. 顺序结构是最简单的算法结构
  3. 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构

3. 选择结构

  1. if 单选择结构
if(布尔表达式){
    
    
    //如果布尔表达式为true将执行的语句
}
  1. if 双选择结构
if(布尔表达式){
    
    
	//布尔表达式的值为true
}else{
    
    
    //布尔表达式的值为false
}
  1. if 多选择结构
if(表达式1){
    
    
    
}else if(表达式2){
    
    
    
}else if(表达式3){
    
    
    
}else{
    
    
    
}
  1. 嵌套的 if 结构
if(布尔表达式1){
    
    
    //布尔表达式1的值为true执行
    if(布尔表达式2){
    
    
        //布尔表达式2的值为true执行
    }
    //满足表达式1却不满足2
}
  1. switch多选择结构
switch(expression){
    
    
    case value :
        //语句
        break;//可选
    ...
    default :	//可选 -- 都不满足时执行
        //语句
}
//简单来说就是判断expression中的值是否与case中的value相等,如果相等则执行对象value下的语句。如果其中有break,则在执行后结束,如果没有,则向下继续执行,这也叫“case穿透现象”

4. 循环结构

注:while和do…while的区别:

  • while 先判断后执行,do…while先执行后判断
  • do…while 总是保证循环体至少会被执行一次!这是他们的主要差别。
  1. while循环

    • 我们大多数情况是会让循环停止下来,我们需要一个让表达式失效的方式来结束循环。
    • 循环条件一直为true就会造成无线循环(死循环),正常的业务中应该避免死循环。
    while(布尔表达式){
          
          
        //循环内容
    }
    
  2. do…while循环

    • 即使布尔表达式值不为true,还是能执行一次代码语句
    do {
          
          
        //代码语句
    } while(布尔表达式);
    
  3. for 循环

    • for循环
    for(初始化;布尔表达式;更新){
          
          
        //代码语句
    }
    
    //练习:打印九九乘法表 ---- 编程重要的是理清思路
        public static void main(String[] args) {
          
          
            //练习3:打印99乘法表
            //1.先打印第一列,也就是1乘到9
            //2.我们把固定的1再用一个循环包起来
            //3.去掉重复项,i <= j
            //4.调整样式
            for (int j = 1; j <= 9; j++) {
          
          
                for (int i = 1; i <= j; i++) {
          
          
                    System.out.print(j + "*" + i + "=" + (j * i) + "\t");
                }
                System.out.println();
            }
        }
    
  4. 增强 for 循环 — 用于循环数组或者集合

    //其中声明的语句相当于 循环之后的语句,表达式相当于 循环体(也就是循环什么)
    for(声明语句:表达式){
          
          
        //代码语句
    }
    
    //实例:增强for相当于for循环的简洁写法,实现的功能一样
    int[] num = {
          
          10,20,30,40,50}
    for(int x : num){
          
          
        System.out.println(x);
    }
    

5. break & continue

5.1 break

  1. 在任何循环语句的主体部分,均可用break控制循环的流程。
  2. 用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

5.2 continue

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

6. 拓展

打印三角形

//打印三角形 打印5行
    public static void main(String[] args) {
    
    
        for (int i = 1; i <= 5; i++) {
    
    
            //打印一个倒三角 --- 后面使其变为空白
            for (int j = 5; j >= i; j--) {
    
    
                System.out.print(" ");
            }
            //打印三角形左半边
            for (int j = 1; j <= i; j++) {
    
    
                System.out.print("*");
            }
            //打印三角形右半边
            for (int j = 1; j < i; j++) {
    
    
                System.out.print("*");
            }
            System.out.println();
        }
    }

猜你喜欢

转载自blog.csdn.net/muyi_upup/article/details/114106360