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

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循环
/**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
        }
        /*相当于:
        for(int i=0;i<5;i++){
        System.out.println(number[i]);
        }
        */
    }
}
  • 声明语句:声明心得局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相同。
  • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

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<i;j++){
                if (i%j==0){
                    x++;
                    break ;
                }
            }
            if(x==0){
                count++;
                System.out.print(i+"\t");
                if(count%5==0){
                    System.out.println();
                }
            }
        }
        System.out.println("1-100之间有"+count+"个质数");
    }
}
//使用“标签”的方法
public class Demo6_goto1 {
    public static void main(String[] args) {
        int count=0;
        outer:for (int i = 2; i < 100; i++) {
            for (int j=2;j<i;j++) {
                if (i % j == 0) {
                    continue outer;
                }
            }
            count++;
            System.out.print(i+"\t");
                if(count%5==0){
                    System.out.println();
                }
        }
        System.out.println("1-100之间有"+count+"个质数");
    }
}

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<i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
//结果:

     *
    ***
   *****
  *******
 *********
### 回答1: 狂神在他的教程中提到了Java配套笔记和Nginx精讲。Java配套笔记是他为学习Java编程语言的学生准备的一套学习资料。这些笔记涵盖了Java的基础知识,包括语法、数据类型、运算符、流程控制等。此外,它还介绍了Java的面向对象编程概念,如类、对象、继承、多态等。这些笔记不仅提供理论知识,还包含了大量的实例和练习题,旨在帮助学生巩固所学的内容。 Nginx精讲是狂神为想要深入学习Nginx的人准备的教程。Nginx是一个高性能的Web服务器和反向代理服务器,广泛用于构建高并发、高可靠性的网络应用。在这个教程中,狂神详细介绍了Nginx的基本原理和使用方法。他解释了Nginx的配置文件结构和语法,以及如何使用Nginx处理静态资源、代理请求、负载均衡等常见任务。此外,他还分享了一些优化技巧和实战经验,帮助读者更好地理解和应用Nginx。 狂神Java配套笔记和Nginx精讲都是他多年的学习和实践经验的总结。这些教程旨在帮助初学者更快地入门和掌握Java编程和Nginx的使用。他的讲解通俗易懂,配有大量的实例和练习,可以帮助读者更好地理解和应用所学的知识。无论是Java初学者还是想要深入学习Nginx的人,这些教程都是很有价值的学习资料。 ### 回答2: 狂神的「java配套笔记 nginx精讲」指的是一套关于Java和Nginx的学习笔记和教程。 首先,Java是一种跨平台的编程语言,广泛应用于开发各种类型的应用程序。学习Java需要理解其基本语法、面向对象编程、多线程、异常处理等方面的知识,并且熟练运用Java的核心类库和开发工具。Java配套笔记可以提供一些实践案例和相关的学习资料,帮助学习者逐步掌握Java的编程技巧和应用开发。 而Nginx是一款高性能的Web服务器和反向代理服务器软件,常用于构建高性能、可靠且可扩展的Web应用架构。学习Nginx需要了解其基本原理、配置文件的编写、常用模块的使用等方面的知识。Nginx精讲的内容可能包括Nginx的安装与配置、HTTP服务器配置、负载均衡、缓存、反向代理等相关技术。通过学习Nginx的使用,可以提高Web应用的性能和稳定性。 由于字数有限,无法详细阐述上述两方面内容的具体细节。总而言之,「java配套笔记 nginx精讲」提供了Java和Nginx学习的学习资料和教程,帮助学习者系统地学习和掌握Java编程和Nginx服务器的使用。学习者可以通过这些学习材料和实践案例,逐步提升自己的技术水平,并应用到实际的项目开发中。 ### 回答3: 狂神Java配套笔记是一份针对Java开发学习者的学习指南,其中包含了Java语言的基础知识、常用的开发工具和框架、常见问题的解答等内容。这份笔记的编写者是狂神,他是一位在Java开发领域有丰富经验的专家,因此这份配套笔记具有很高的可信度和实用性。 在狂神Java配套笔记中,作者通过详细的讲解和实例演示,帮助读者了解Java语言的基本语法和特性,包括变量、数组、流程控制、面向对象编程等。同时,笔记中还介绍了常用的开发工具,如Eclipse和IntelliJ IDEA,以及流行的框架,如Spring和MyBatis,帮助读者快速入门并掌握实际应用。 而关于Nginx的精讲,狂神也在这份配套笔记中有所涉及。Nginx是一种高性能的HTTP和反向代理服务器,常用于负载均衡、反向代理、静态文件服务等场景。笔记中介绍了Nginx的基本原理和使用方法,包括配置文件的编写、常见的配置示例和调优技巧等。读者可以通过学习这部分内容,更好地理解Nginx的工作原理,并能在实际项目中灵活应用。 总结来狂神Java配套笔记是一份综合的学习资料,帮助Java开发者系统学习Java语言和相关工具,同时也包含了Nginx的精讲,帮助读者了解和应用这一常用的服务器软件。这份笔记的内容详实、实用,并且由经验丰富的专家亲自编写,因此对于想要学习Java开发和深入了解Nginx的人来,是一份不可多得的学习资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值