栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

狂神说Java流程控制笔记(02)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

狂神说Java流程控制笔记(02)

目录
  • 1. 用户交互Scanner
    • Scanner对象
  • 2. 顺序结构
  • 3. 选择结构
      • 反编译
  • 4. 循环结构
    • while循环(先判断后执行)
    • do...while循环(先执行,后判断)
    • for循环
    • 增强for循环
  • 5. break & continue
    • 关于goto关键字
      • 求质数
  • 6. 练习
    • 打印三角形

1. 用户交互Scanner

java.util.Scanner是Java5的新特性,使用Scanner类来获取用户的输入

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

import java.util.Scanner;

public class Demo2 {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一些内容:");
        //判断用户有没有输入字符串
        if(scanner.hasNextLine()){
            //使用nextLine方式接收
            String string =scanner.nextLine();
            System.out.println(string);
        }
        //凡是属于IO流的类,如果不关闭会一直占用资源,要养成好习惯,用完就关闭
        scanner.close();
    }
}
Scanner对象
  1. next() :
    1. 一定要读取到有效字符后才可以结束输入
    2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
    3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
    4. next()不能得到带有空格的字符串
  2. nextLine():
    1. 以enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
    2. 可以获得空白

按住ctrl点击Scanner,可查看当中的其他方法

点击左侧Structure会显示方法目录

输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果

package com.tang.easy;

import java.util.Scanner;

public class Demo3_1 {
 public static void main(String[] args) {
     int i=0;//用来计数,到当前为止输入了多少个数字
        double sum=0.0;//求和
        Scanner scanner = new Scanner(System.in);
        //用循环来判断是否还有输入,并在里面对每一次进行统计(输入数字的个数)和求和
        while (scanner.hasNextFloat()){
            double x = scanner.nextDouble();
            i++;
            sum+=x;
            System.out.println("第"+i+"个数据:"+x+"n当前总和sum="+sum);
        }
        System.out.println("输入了"+i+"个数据,其平均值是:"+(sum/i));
        scanner.close();
    }
   }
2. 顺序结构

从上往下执行

3. 选择结构
if(布尔表达式){
    //布尔表达式为true
}else{
    //false
}

if...
else if...
else if...
...
else...
package com.tang.easy;

import java.util.Scanner;

public class Demo5 {
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        System.out.println("请输入数据:");
        String x=s.nextLine();
        //判断括号里的字符串与输入的数据是否一致(少用==进行该判断)
        if (x.equals("Hello")){
            System.out.println("你输入的是:"+x);
        }else{
            System.out.println("你输入的不是Hello");
        }
        System.out.println("End");
        s.close();
    }
}
  • Switch多选择结构
    • byte、short、int 、char
    • 从Java SE7 开始,switch 支持字符串String类型
    • 同时,case 标签必须为字符串常量或字面量
package com.tang.easy;

public class Demo5_1 {
    public static void main(String[] args) {
        String a="aaaaaa";
        switch (a){
            case "aaaaaa":
                System.out.println("匹配成功");
                break;
            default:
                System.out.println("匹配失败");
        }
    }
}
反编译

Java—class(字节码文件)—反编译(idea)




4. 循环结构 while循环(先判断后执行)
public class Demo6 {
    public static void main(String[] args) {
        //死循环
        while(true){
            //等待客户端连接
            //定时检查
            //......
            break;//跳出死循环
        }
    }
}

计算1+2+3+…+100.

package com.tang.easy;

public class Demo6 {
    public static void main(String[] args) {
        int i=0;
        int sum=0;
        while(i<=100){
            sum+=i;
            i++;
        }
        System.out.println(sum);//5050
    }
}
do…while循环(先执行,后判断)
package com.tang.easy;

public class Demo6 {
    public static void main(String[] args) {
        int i=0;
        int sum=0;
        do{ 
            sum+=i;
            i++;
        }while(i<=100);
        System.out.println(sum);//5050
    }
}
for循环
            //初始化//条件判断//迭代~更新
        for (int s=0;s<=100;s++){
              //代码语句~循环体
        }
//for(;;)//死循环
增强for循环
  • Java5引入了一种主要用于数组或集合的增强型for循环

public class Demo6_3 {
    public static void main(String[] args) {
        int[] number = {10,20,30,40,50,66};//声明一个数组
        for(int x:number){//将每一个number的具体值赋给x
            System.out.println(x);//输出每一个x
        }
        
    }
}
  • 声明语句:声明心得局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相同。
  • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
5. break & continue

break:退出整个循环体。

for(int i=0;i<100;i++){
    if(i==30){
        break;//当条件成立时,跳出整个循环,不再执行for中的任何语句
    }
    System.out.println(i);
}

continue:结束当前循环

for(int i=0;i<100;i++){
    if(i%10==0){
        System.out.println();
        continue;//当条件成立时,结束本次循环,continue之后的语句将不执行
    }
    System.out.println(i);
}
关于goto关键字
  • goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continue两个关键字身上仍然能看出一下goto的影子—带标签的break和continue。
  • “标签”是指后面跟一个冒号的标识符,例如:lable:
  • 对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由就是:我们希望在其中嵌套另一个循环,由于break和contine关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方。
求质数
//普通求法
public class Demo6_goto {
    public static void main(String[] args) {
        int x=0;
        int count=0;
        for (int i = 2; i < 100; i++) {
            x=0;
            for (int j=2;j 
6. 练习 
打印三角形 
public class Demo6_5 {
    public static void main(String[] args) {
        for (int i = 0; i <5; i++) {
            for (int j = 1; j <10; j++) {
                if (j>=5-i&&j<=5+i){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}
public class Demo6_5_1 {
    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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号