Java流程控制

本文详细介绍了Java中的用户交互,通过Scanner类的next()和nextLine()方法获取用户输入,并讲解了顺序、选择和循环结构。内容包括if单双选择、if多选择、嵌套if及switch结构。同时,展示了while、do-while和for循环的用法,以及增强for循环(foreach)的应用。此外,还讨论了break和continue在循环控制中的作用,提供了多个实战练习案例。
摘要由CSDN通过智能技术生成

Java流程控制

1、用户交互Scanner

  • Java提供的工具类,来获得用户输入。java.util.Scanner是Java5的新特性,可以通过Scanner类来获得用户输入

  • 基本语法:

     Scanner scanner = new Scanner(System.in);
  • 通过Scanner类的next()nextline()方法获取输入的字符串,在读取前需要使用hasNext()hasNextLine()判断是否还有输入的数据

    • next()方法

      • 读到有效字符才能结束输入

      • 对输入有效字符之前遇到的空格忽略

      • 读到有效字符后的空格作结束符

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

       package edu.hqu.Scanner;
       ​
       import java.util.Scanner;
       ​
       public class Demo01 {
           public static void main(String[] args) {
               //创建一个扫描器对象,用于接收键盘数据
               Scanner scanner = new Scanner(System.in);
       ​
               System.out.println("使用next方法接收:");
       ​
               //判断用户有没有输入字符串
               if(scanner.hasNext()){
                   //使用next方法接收
                   String str = scanner.next();
                   System.out.println("输出的内容为:"+ str);
               }
               //凡是属于IO流的类如果不关闭会一直占用资源
               scanner.close();
               //创建扫描器对象scanner,判断用户是否输入字符串,是则输出scanner.next()方法得到的内容,关闭扫描器对象
           }
       }

       

    • nextLine()方法

      • 以Enter作为结束符

      • 可以获得空白

       package edu.hqu.Scanner;
       ​
       import java.util.Scanner;
       ​
       public class Demo02 {
           public static void main(String[] args) {
       ​
               Scanner scanner = new Scanner(System.in);
       ​
               System.out.println("使用nextLine方法接收:");
               //判断是否还有输入
               if(scanner.hasNextLine()){
                   
                   String str = scanner.nextLine();
                   System.out.println("输出内容为:"+ str);
               }
               scanner.close();
           }
       }
       ​

       

2、顺序结构

Java的基本结构就是顺序结构 从上到下依次执行

3、选择结构

  • if单选择结构

     ​
         if(boolean){
             //boolean为true
         }

  • if双选择结构

     ​
         if(boolean){
             //boolean为true
         }else{
             //boolean为false
         }

  • if多选择结构

     ​
         if(boolean1){
             //boolean为true
         }else if(boolean2){
             //boolean1为false且boolean2为true
         }else if(boolean3){
             //boolean1为false且boolean2为false且boolean3为true
         }else{
             //boolean1 boolean2 boolean3 都为false
         }

  • 嵌套的if结构

     ​
         if(boolean1){
             //boolean1为true
             if(boolean2){
                 //boolean2为true
             }
         }

  • switch多选择结构

swtich case 语句判断一个变量与一系列值中的某个值是否匹配,每一个值成为一个分支

switch语句中变量类型可以是:

  • byte short int 或 char

  • 从Java SE 7 开始 switch支持字符串String类型

  • case标签必须为字符串常量或字面量

     ​
         switch(expression){
             case value1:
                 //语句
                 break;//case穿透
             case value2:
                 //语句
                 break;
             default:
         }

4、循环结构

  • while循环

     ​
         while(boolean){
             //boolean为true,循环一直走下去
         }

    大多数情况会让循环停止下来,需要一个让表达式失效的方法结束循环

  • do while循环

     ​
         do{
           //代码语句  
         }while(boolean)

    即使不满足条件,也至少执行一次

while和do while的区别:while先判断后执行,do while先执行后判断

  • for循环

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

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构

练习一

         //100以内奇数和 偶数和
         int oddSum = 0;
         int evenSum = 0;
 ​
         for (int i = 0; i < 100; i++) {
             if(i%2!=0){
                 oddSum += i;
             }else {
                 evenSum += i;
             }
         }
         System.out.println("100以内奇数和为:"+oddSum);
         System.out.println("100以内偶数和为:"+evenSum);

练习二

         //用for循环输出1-100之间能被5整除的数,并且每行输出3个
 ​
         for (int i = 1; i < 1000; i++) {
             if(i%5==0){
                 System.out.print(i+"\t");
             }
             if (i%15==0){
                 System.out.println();
                 //System.out.print("\n");
             }
             //println() 输出完换行
             //print()   输出完不换行
         }

练习三

         //打印乘法表
         for (int i = 1; i < 10; i++) {
             for (int j = 1; j <= i; j++) {
                 System.out.print(j+"*"+i+"="+(i*j)+"\t");
             }
             System.out.println();
         }
  • 增强for循环(foreach)

    • Java5 引入了一种主要用于数组集合的增强型for循环

       ​
           for(声明语句 : 表达式){
               //代码语句
           }
           
               int[] array ={1,2,3,4,5};
               for (int x:array) {//for(数组元素:数组)
                   System.out.println(x);// 1 2 3 4 5
               }

5、break & continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句

             for (int i = 0; i < 10; i++) {
                 System.out.println(i);// 0 1 2 3 4 5
                 if(i==5){
                     break;
                 }
             }

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

             for (int i = 0; i < 10; i++) {
                 if(i%2==0){
                     continue;
                 }
                 System.out.println(i);//1 3 5 7 9
             }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值