java基础:流程控制

一、用户交互Scanner

  1. Scanner对象:java提供了这样一个工具类,我们可以通过Scanner类来获取用户的输入 Java.util.Scanner

  2. 基本语法如下:

Scanner s = new Scanner(System.in);
  1. 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有数入的数据

  • 注:

    • next()

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

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

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

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

    • nextLine()

      1. 以enter为结束符,返回的是输入回车前的所有字符

      2. 可以获得空白

二、顺序结构

  1. java的基本结构就是顺序结构。除非特别指明,否则就安装顺序一句一句执行

  2. 顺序结构是最简单的语法结构,它是任何一个算法都离不开的一种基本算法结构

三、选择结构

1、if单选择结构:判断一个东西是否可行,才去执行

if(布尔表达式){
    //如果布尔表达式为true将执行的语句
}

2、if双选择结构

if(布尔表达式){
    //如果布尔表达式为true将执行的语句
}else{
    //如果布尔表达式为false将执行的语句
}

3、if多选择结构

if(布尔表达式1){
    //如果布尔表达式1为true将执行的语句
}else if(布尔表达式2){
    //如果布尔表达式2为true将执行的语句
}else if(布尔表达式3){
    //如果布尔表达式3为true将执行的语句
}else {
    //如果以上布尔表达式都不为true将执行的语句
}

4、嵌套的if结构

if(布尔表达式1){
    //如果是布尔表达式1的值将执行代码
    if(布尔表达式2){
        //如果是布尔表达式2的值将执行代码
    }
}

5、switch多选择结构(匹配一个具体的值)

switch(表达式){
    case value:
        //语句
        break;//最好每个case后面都加上break,否则会出现case穿透现象
    case value:
        //语句
        break;    
    case value:
        //语句
        break; 
    default://可选
        //语句
}
  • switch语句中的变量类型可以是:

    1. byte、short、int或者char

    2. 从java SE 7开始,switch支持字符串string类型了

    3. 同时case标签必须为字符串常量或字面量

四、循环结构

1、while循环(先判断后执行)

while(布尔表达式){
    //循环内容
}
  • 只要循环表达式为true,循环就会一直进行下去

  • 我们大多数情况是会让循环停止下来的,所以我们需要一个让表达式失效的方式来结束循环

  • 少部分的情况需要循环一直执行,比如服务器的请求响应监听等

  • 循环条件一直为true就会造成无限循环(死循环),业务编程中应该尽量避免死循环,会影响程序性能或者造成程序卡死崩溃

2、do...while循环(先执行后判断)

do{
    //代码语句
}while(布尔表达式);

3、for循环

for(初始化;布尔表达式;更新){
    //代码语句
}
    1. 先执行初始化步骤,可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句。

    2. 接着检测布尔表达式的值,结构为true,循环体被执行,结果为false循环终止。

    3. 执行一次循环后,更新循环变量。

    4. 再次检测布尔表达式的值,循环执行上面过程

4、增强型for循环

for(声明语句:表达式){
    //代码语句
}
  • java5引入,主要用于数组或集合

  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等

  • 表达式:是要访问的数组名,或者是返回值为数字的方法

public class mumber {
    public static void main(String[] args) {
        int[] numbers={10,20,30,40,50};
​
        //普通for循环
        for (int i = 0; i < 5; i++) {
            System.out.println(numbers[i]);
        }
​
        System.out.println();
​
        //增强型for循环
        for(int x:numbers){
            System.out.println(x);
        }
    }
}

五、break和continue

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

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

六、练习

  1. 打印四种不同方向的九九乘法表

public class nine {
    //九九乘法表
    public static void main(String[] args) {
​
        //左下
        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();
        }
​
        System.out.println();
​
​
        //左上
        for (int i = 1; i<10 ; i++) {
            for (int j=i; j < 10; j++) {
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println();
        }
​
        System.out.println();
​
​
        //右上
        for (int i = 1; i<10 ; i++) {
            for(int j=1;j<i;j++){
                System.out.print("      "+"\t");
            }
            for (int j=i; j < 10; j++) {
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println();
        }
​
        System.out.println();
​
​
        //右下
        for (int i = 9; i>=1 ; i--) {
            for(int j=1;j<i;j++){
                System.out.print("      "+"\t");
            }
            for (int j=i; j<10; j++) {
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println();
        }
​
    }
}

     2. 打印三角形(五行)

public class three {
    public static void main(String[] args) {
        //打印三角形
        
        for (int i = 0; i < 5; i++) {
            for (int k = i; k <5; k++) {//输出空格
                System.out.print(" ");
            }
            for (int j=0 ;j<=(i+i); j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值