简单的网站建设公司的模板,外包公司做网站怎么样,医院网站建设价格,有照片的地图软件1. 用户交互Scanner
1.1 简单的Scanner用法
首先#xff0c;需要 import java.util.Scanner其次#xff0c;需要创建一个 Scanner 类的对象#xff0c; Scanner s new Scanner(System.in);通过调用Scanner对象的方法来完成#xff0c; 一定要注意有开有关#xff0c;最…1. 用户交互Scanner
1.1 简单的Scanner用法
首先需要 import java.util.Scanner其次需要创建一个 Scanner 类的对象 Scanner s new Scanner(System.in);通过调用Scanner对象的方法来完成 一定要注意有开有关最后要调用方法 close()
方法名称搭配方法用途boolean hasNext()String next()一个用于查看是否有下一个输入一个用于接收空格视为结束boolean hasNextLine()String nextLine()一个用于查看是否有下一个输入一个用于接收换行视为结束
haveNext(), next() 方法的尝试
package com.luckylight.package3;import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner scan new Scanner(System.in);System.out.println(使用next方式接收:);// next 相当于 scanfif (scan.hasNext()) {String str scan.next();System.out.println(str);}// 注意有开有关scan.close();}
}
haveNextLine(), nextLine()方法的尝试
package com.luckylight.package3;import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner scan new Scanner(System.in);System.out.println(使用nextline方式接收:);// nextLine 相当于 getsif (scan.hasNextLine()) {String str scan.nextLine();System.out.println(str);}// 注意有开有关scan.close();}
}next()与nextLine()细节方面的介绍 next() – 类似于 c中的scanf 必须要读到有效字符才算结束有效字符前的空白next()方法将其自动去除得不到带有空格的字符串 nextLine() 类似于 c中的 getline(cin, str);(String str) || cin.getline(buf, sizeof (buf));–(char buf[N]) 以 Enter 作为结束符可以获得空白
1.2 Scanner 的进一步
之前Scanner 的部分仅仅是返回了 字符串 String类型也可以进行 int, float, double 的类型使用方法如下所示注意这个 has___这个东西是可以进行隐式转换的也就是说double 可以接受 int。而且注意has这个仅是判断并不接受内容只有next他的光标才会往后移动而且也不能超出范围否则has__是会返回false 的
方法名称配套方法作用hasNextInt()nextInt()整数inthasNextLong()nextLong()整数longhasNextFloat()nextFloat()浮点数floathasNextDouble()nextDouble()浮点数double
package com.luckylight.package3;import java.util.Scanner;public class demo2 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int i 0;float x 0.0f;// 整数if (scanner.hasNextInt()) {i scanner.nextInt();System.out.println(你输入的一个整数是: i);} else {System.out.println(你没有输入一个整数);}// 浮点数这个是可以接受整数的if (scanner.hasNextFloat()) {x scanner.nextFloat();System.out.println(你输入的一个浮点数float x);} else {System.out.println(你没有输入一个浮点数);}scanner.close();}
}
求输入整数数字的和以及平均值
package com.luckylight.package3;import java.util.Scanner;public class demo2 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n 0;double sum 0.0;while (scanner.hasNextLong()){long tmp;n ;tmp scanner.nextLong();sum tmp;System.out.println(当前你输入的数据是 tmp , 当前的tmp和为 sum);}System.out.println(最终的总和为 sum , 平均值为 sum / n);scanner.close();}
}
1.3 print 与 printLine()
都是java 输出语句
System.out.print(), System.out.printLine()
一个是输出完不换行print, 一个是输出完会换行 println
2. 顺序结构 选择结构 循环结构
2.1 顺序结构
直接就是顺序执行没啥好说的最基础的程序执行结构在这里补充一个 小常识。
与equals的区别 操作符的作用 1、用于基本数据类型的比较 2、判断引用是否指向堆内存的同一块地址。 equals的作用 用于判断两个变量是否是对同一个对象的引用即堆中的内容是否相同返回值为布尔类型 用法boolean b obj1.equals(obj2); 与 equals 的区别 String作为一个对象来使用查看他们的区别。 eg1: 对象不同内容相同 String s1 new String(java);
String s2 new String(java);System.out.println(s1s2); //false
System.out.println(s1.equals(s2)); //trueeg2:同一对象和equals结果相同 String s1 new String(java);
String s2 s1;System.out.println(s1s2); //true
System.out.println(s1.equals(s2)); //trueString作为一个基本类型来使用 如果值不相同对象就不相同所以 和equals结果一样 String s1 java;
String s2 java;System.out.println(s1s2); //true
System.out.println(s1.equals(s2)); //true综上所述还是使用equals判断稳妥
2.2 选择结构
2.2.1 if 类型 if (condition) — if (condition) — else — if (condition1) — else if (conditon2) ------- else — if 还可以进行嵌套
2.2.2 switch 类型
具体的类型如下示例所示
switch (expression) {case value1 :sentence_1;break;case value2 :sentence_2;break;......default :sentence_n;break;
}其中的 break default 都是可选的一定要注意 有无的区别expression 变量可以使 byte, short, int , 或者是char从 Java SE 7 开始 switch 就可以支持 String 类型了。case 后面必须跟的是常量表达式不可以是变量
下面我们写一个switch文件试一试 String 类型然后介绍IDEA的反编译
首先我们查看IDEA经过 javac生成的文件放在文件哪个位置 进入 class 文件路径将其添加到 idea 的当前工作区域(不可以直接通过 IDEA 加入但是可以通过文件夹手动加入)
加入后显示如下(倘若加入后还没有直接 右键 reload from disk 该文件夹即可) 最后双击该文件打开即可查看反编译后的文件发现这个String的Switch原来是使用了 hash 操作。
2.3 循环结构
2.3.1 while, do~while, for
**while, do – while, for ** while (booleanExpression) {// 循环体}do {// 循环体} while (booleanExpression);for (初始化; booleanExpression; 更新迭代) {// 循环体}练习一个打印九九乘法表格
注意这个是双引号不是单引号
for 版本 for (int i 1; i 9; i ) {for (int j 1; j i; j ) {System.out.printf(%-2d*%2d %2d,\t, j, i, i * j);}System.out.println();}// 这个是双引号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();}while 版本 int i 1, j 1;while (i 9) {j 1;while (j i) {System.out.printf(%d * %d %2d,\t, j, i, i * j);j ;}i ;System.out.println();}2.3.2 增强的for循环
Java5引入的一种用于数组或者是集合的增强型for循环 这个东西好像和 c 那个一样 for (auto x : v){} // 遍历vector数组
for (声明语句 : 表达式) {// 代码
}测试样例
int[] numbers {10, 20, 30, 35};for (int x : numbers)System.out.println(x);3. Break Continue
不带标签的 label 和 continue 是和 c 一模一样的
带标签的 label 和 continue 奇奇怪怪不建议使用。
public class MultTable {public static void main(String[] args) {label1 : for (int i 1; i 20; i ) {if ((i 1) 1) {// continue label1;break label1;}System.out.println(i);}}
}
4. 练习debug
打印一个三角形
package com.luckylight.package3;/*** author LuckyLight* since 8.0* */
public class MultTable {public static void main(String[] args) {// 打印一个 n 行的三角形int n 5;int sumLine n * 2 - 1;System.out.println(n);System.out.println(sumLine);for (int i 1; i n; i ) {int curCnt i * 2 - 1;int left (sumLine - curCnt) / 2;for (int j 1; j sumLine; j ) {if (j left || j sumLine - left 1 ) {System.out.print( );} else {System.out.print(*);}}System.out.println();}}
}
IDEA 的debug功能超级好用建议多多尝试