java流程控制

java流程控制

一、Scanner对象

基础语法

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

public static void main(String[] args) {
    //创建一个扫描器对象,用于接收键盘数据
    Scanner scanner = new Scanner(System.in);
    System.out.println("使用next方式接收:");
    //判断用户有没有输入字符串
    if(scanner.hasNext()){
        //使用next方式接收
        //输入hello world
        String str = scanner.next();
        //输出hello
        System.out.println("输出的内容为:"+str);
    }
    //凡是属于IO流的类如果不关闭会一直占用资源
    scanner.close();
}
public static void main(String[] args) {
    //从键盘接收数据
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入");
    String str = scanner.nextLine();
    System.out.println("内容"+str);
    scanner.close();
}
next() 与 nextLine() 区别

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白。

二、Scanner进阶

Int类型
//创建一个扫描对象
     //用于接收用户输入的对象
    Scanner scanner = new Scanner(System.in);
    //从键盘接收数据
    int i = 0;
    float f = 0.0f;
    //输入提示
    System.out.println("请输入整数");
    //判断
    if (scanner.hasNextInt()){
        i = scanner.nextInt();
        System.out.println("整数为" + i);
    }else {
        System.out.println("输入的不是整数");
    }
}
float类型
 System.out.println("请输入小数");
    if (scanner.hasNextFloat()){
        f = scanner.nextFloat();
        System.out.println("小数数据"+ f);
    }else {
        System.out.println("输入的不是小数数据");
    }
    //关闭
    scanner.close();

三、顺序结构

在这里插入图片描述

四、选择结构

单选择结构
if(布尔表达式) 

{   

//如果布尔表达式为true将执行的语句 

}
public static void main(String[] args) {
    //equals yi ku si
    //单分支结构
    Scanner scanner = new Scanner(System.in);

    String s = scanner.nextLine();
    if (s.equals("hello")){
        System.out.println("输入正确");
    }
    System.out.println("单分支结构");
    scanner.close();
}
双选择结构

if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}
public static void main(String[] args) {
    //考试分数大于60及格,小于60不及格
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入你的分数");
    double x = scanner.nextDouble();
    if (x >= 60){
        System.out.println("及格");
    }else {
        System.out.println("不及格,继续努力");
    }
    scanner.close();
}
多选择结构

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。

使用 if,else if,else 语句的时候,需要注意下面几点:

  • if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
  • if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
  • 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}
public static void main(String[] args) {
        //考试分数大于60及格,小于60不及格
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的分数");
        double x = scanner.nextDouble();
        if (x >= 60){
            System.out.println("及格");
        }else if (x >= 30&&x<=50){
            System.out.println("不及格,继续努力");
        }
        scanner.close();
    }
嵌套的if结构

使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。

if(布尔表达式 1){
   如果布尔表达式 1的值为true执行代码
   if(布尔表达式 2){
      如果布尔表达式 2的值为true执行代码
   }
}
switch多选择结构

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

switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

swithch case语句规则

  1. switch语句中变量类型可以是:byte、short、int、string
  2. switch语句中可以拥有多个case语句。每个case后面跟一个要比较值和冒号
  3. 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
  4. switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
public static void main(String[] args) {
    //创建scanner对象
    Scanner scanner = new Scanner(System.in);
    //char grade = 'c';
    System.out.println("请输入等级");
    while(scanner.hasNextLine()){
        String grade = scanner.nextLine();
        switch(grade){
            case "a":
                System.out.println("优秀");
                break;
            case "c":
                System.out.println("良好");
                break;
            default:
                System.out.println("错误");
        }
    }
}

五、循环结构

while循环

while是最基本的循环,它的结构为:

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

只要布尔表达式为 true,循环就会一直执行下去。

public static void main(String[] args) {
    //输出1.。。。。100
    int i = 1;
    while (i<=100){
        System.out.println(i);
        i++;
    }
}
public static void main(String[] args) {
    //计算1.。。。。100的和
    int sum = 0;
    int i = 1;
    while(i<=100){
        sum+=i;
        i++;
    }
    System.out.println(sum);
}
do…while循环

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

public static void main(String[] args) {
    //查看while与do。。。while的区别
    //while先判断在执行
    //do。。。while先执行在判断
    int i = 0;
    while(i<0){
        System.out.println("while");
    }
    System.out.println("*************************");
    do {
        System.out.println("do.....while");
    }while (i<0);
}
/*
结果:
* *************************
do.....while
 */
for循环

虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。

for循环执行的次数是在执行前就确定的。语法格式如下:

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

关于 for 循环有以下几点说明:

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次检测布尔表达式。循环执行上面的过程。
public static void main(String[] args) {
    //计算0到100之间的奇数和偶数和
    //偶数
    int a = 0;
    //奇数
    int b = 0;
    for (int i = 0; i <= 100; i++) {
        if (i%2==0){
            a+=i;
        }else {
            b+=i;
        }
    }
    System.out.println("偶数"+a);
    System.out.println("奇数"+b);
}
public static void main(String[] args) {
        //计算1到1000之间被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();
            }
        }
    }
public static void main(String[] args) {
    //九九乘法表
    /*
    过程
     */
    for (int i = 1; i <= 9; i++) {
       for (int j = 1; j <= i; j++){
           System.out.print(j+"*"+i+"="+i*j+"\t");
       }
        System.out.println();
    }
}
for循环进阶

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

Java 增强 for 循环语法格式如下:

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

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

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

public static void main(String[] args) {
    //打印数组
    //定义一个数组
    int[] numbers = {10,20,40,50,60};
    //普通方法打印出来
    for (int i = 0; i < 5; i++) {
        System.out.println(numbers[i]);
    }
    System.out.println("*********************************");
    //遍历数组
    for (int x:numbers){
        System.out.println(x);
    }
}
break关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

continue关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

for循环的应用

打印三角形

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();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值