第三天

 

1. Scanner对象

//创建一个Scanner对象
Scanner Scanner = new Scanner(System.in);String str;
//判断用户是否输入字符串
if(scanner.hasNext){
    str = scanner.next();
    System.out.println("输出内容为:"+str);
}//关闭scanner
scanner.close();

 

  通过Scanner类的next()与nextLine()方法获取输入的字符串,用hasNext()与hasNextLine()判断是否还有输入的数据

  next():

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

  nextLine():

  1.   以Enter为结束符
  2.   可以接受空白字符

    

,nextDouble(),nextFloat(),nextShot(),

,nextLong()......

注意:

  1. Scanner输入IO流,凡是输入IO流的如果不关闭它,就会一直占用资源,所以,要养成习惯,用完,要关闭!
  2. hasNext() 和 hasNextLine() 的 区别:
  • hasNext()方法会判断接下来是否有非空字符.如果有,则返回true,否则返回false
  • hasNextLine()true,否则返回false
  1. 采用hasNextXxxx()nextXxxx(),否则可能会在别的地方报错:
  • 比如前面用hasNextLine(),那么后面要用 nextLine() 来处理输入;
  • 后面用 nextInt()hasNext()方法去判断.

 

2.顺序结构

  • 按顺序,从上到下进行
  • 是任何一个算法都离不开的一种基本算法结构

3.选择结构

  1. if()else
    if () --- else if() --- else if() ...... ---else
  2. switch(){ case value: [...... default]}
    它语句中的变量类型可以是byte,short,int或者char
    jdk7之后支持字符串String类型
    同时case标签必须为字符串常量或字面量
    注:在使用switch()时,要注意case穿透,用好break(或者在有外层循环的时候也可用continue)
     

 

4.循环结构

  1. while循环
while(布尔表达式){
    //循环内容
}
  1. do...while循环
do{
   //循环内容 
}while(布尔表达式);
  1. for循环
for(初始化;布尔表达式;更新){
    //循环内容
}

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

for循环执行的次数是在执行前就确定的

  1. 在java5中引入了一种主要用于 数组增强型 for循环
for(声明语句 : 表达式){
    //代码句子
}
/*
    声明语句:声明新的局部变量,该 变量 的类型必须和 数组元素 的类型匹配。
            其作用域限定在循环语句块,其值与此时数组元素的值相等
    表达式:表达式是要访问的数组名,或者是返回值为数组的方法
*/

public static void main(String[] args) {
    int[] number = {10,20,30,40};  //定义一个数组
    
    for(int i = 0;i<4;i++){
        System.out.println(number[i]);
    }
    
    //遍历数组的元素
    for(int x : number){
        System.out.println(x);
    }
    
    //注:不同点,下边是把number数组中的每一个元素,赋值给x,然后输出的,但使用的方法,就是第一个for循环
}

 

 

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

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

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

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

 

5.break和continue

  1. break:在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环
不执行循环中剩余的语句。(break语句也在switch语句中使用)
  1. continue:语句在循环语句体中,用于终止循环过程,即跳过循环体中尚未执行的语句,
    接着进行下一次是否执行循环的判定
     
  2. 了解goto关键字

java oj 判断输入结束 java判断是否还有输入_java oj 判断输入结束

 

//输出质数
//这种写法不建议使用,了解就好
outer:for(int i = 101;i<150;i++){
    for(int j =2;j<i;j++){
        if(i % j == 0){
            continue outer;
        }
    }
    System.out.println(i+" ");
}

 

 

 

 

 

 

补充

  1. Scanner对象是jdk5的新特性,可以通过Scanner类来获取用户的输入,他存在于java.util.Scanner包中
  2. jdk7开始 swith 支持字符串String类型了(字符的本身还是数字!)

java oj 判断输入结束 java判断是否还有输入_System_02

  1. 在switch没有外层循环的时候,只能用break而不能用continue
    在switch有外层循环的时候,可以用break,也可以用continue
  2. .java ---(编译)---> .class(字节码文件)---(反编译)--->
  3. 伪代码:假代码的意思
  4. 在java5中引入了一种主要用于 数组增强型 for循环
  5. 学会使用debug