我们可以通过Scanner类来获取用户的输入
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否有输入的数据。
!!!凡是属于IO流的类如果不关闭会一直占用资源,所以用完最好关闭掉。
next():
一定要读取到有效字符后次啊可以结束输入;
对输入有效字符之前遇到的空白,next()方法自动将其去掉;
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符;
next()不能得到带有空格的字符串;
public class Demo03 { public static void main(String[] args) { System.out.println("请输入:"); Scanner scanner = new Scanner(System.in); if (scanner.hasNext()){ String a=scanner.next();//输入的是hello world System.out.println("输出:"+a);//输出的是hello } scanner.close(); } }
nextLine():
以Enter(回车)作为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符;
可以获得空白
public static void main(String[] args) { System.out.println("请输入:"); Scanner scanner = new Scanner(System.in); if (scanner.hasNextLine()){ String a=scanner.nextLine();//输入的是hello world System.out.println("输出:"+a);//输出的是hello world } scanner.close(); } }
nextInt():整数型获取、nextDouble:浮点数获取。。。。。。等等。
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句的执行;
它是任何一个算法都离不开的一种基本算法结构;
public class ShunXuDemo { public static void main(String[] args) { System.out.println("hello world1"); System.out.println("hello world2"); System.out.println("hello world3"); System.out.println("hello world4"); System.out.println("hello world5"); /* 按着顺序输出hello world1~5; */ } }
//语法 if(布尔表达式){ //如果布尔表达式为真则将执行的语句 }
//语法 if(布尔表达式){ //如果布尔表达式为真则将执行的语句 }eles{ //如果布尔表达式为假则将执行的语句 }
//语法 if(布尔表达式 1){ //如果布尔表达式1为真则将执行的语句 }eles if(布尔表达式 2){ //如果布尔表达式2为真则将执行的语句 }eles if(布尔表达式 3){ //如果布尔表达式3为真则将执行的语句 }else{ //如果以上表达式都不为真执行代码 }
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
//语法 case穿透 如果没有break则会以此执行后方代码 switch 匹配一个具体的值 switch(expression//){ case value: //语句 break;//可选 case value: //语句 break;//可选 case value: //语句 break;//可选 default://可选 //语句 }
反编译 java---class(字节码文件)-----反编译(IDEA)
在IDEA中找到ProjectStructure--Project---out的输出路径---找到.class文件---放到.java文件夹中--在IDEA中打开
while是最基本的循环
//结构 while(布尔表达式){ //循环内容 }
注意:
!!!我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
少部分情况需要循环一直执行,比如服务器的请求响应监听等。
//结构 do{ //循环代码 }while(布尔表达式)
//结构 for(初始化;布尔表达式;更新){ //代码结构 } //IDEA快捷使用 100.for for (int i = 0; i < 100; i++) { } //死循环 for(;;){ }
package com.liu.struct; public class ForDemo03 { 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+" "); } System.out.println(); } } }
package com.liu.struct; import java.util.Scanner; public class ForDemo05 { public static void main(String[] args) { //打印数字三角形 Scanner scanner = new Scanner(System.in); System.out.println("请输入要打印的数字三角形行数:"); int num=scanner.nextInt();//输入的数据 System.out.println("输出结果:"); for (int i = 1; i <=num; i++) { for (int j=num;j>i;j--){ System.out.print(" ");//打印出左面空 } for (int j=1;j<=i;j++){ System.out.print(j);//打印左半部三角形 } for (int k=i-1;k>=1;k--){ System.out.print(k);//打印出右半部三角形 } System.out.println(); } } } /* 输入的数据为5 1 121 12321 1234321 123454321 */
增强for用来输出遍历数组和集合
for(声明语句:表达式){ //代码句子 }java
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域定在循环语句块,其值与此时的数组元素的值相等。
表达式:表达式是要访问的数组名,或返回值为数组的方法。
break:在任何循环的主体部分,均可以使用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的代码。
continue:语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判断。