首页 / JAVA / Java基础学习笔记(二)
Java基础学习笔记(二)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java基础学习笔记(二),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7141字,纯文字阅读大概需要11分钟。
内容图文
![Java基础学习笔记(二)](/upload/InfoBanner/zyjiaocheng/590/fc339065ecc54411af69f448f80e8f49.jpg)
Java流程控制
Scanner对象
- 为实现程序和人的交互,Java为我们提供了一个工具类java.util.Scanner,来获取用户的输入。
- 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般使用 hasNext()与hasNextLine()判断是否还有输入的数据。
-
next() 、hasNext()
package com.okami.scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收:"); //判断用户有没有输入字符串 if (scanner.hasNext()){ //使用next方式接收 String str = scanner.next(); //程序会等待用户输入完毕 System.out.println("输出的内容为:"+str); } //凡是属于IO流的类如果不关闭会一直占用资源,所以用完应马上关闭 scanner.close(); } }
-
nextLine()、hasNextLine()
package com.okami.scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方式接收:"); if (scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println("输出的内容为:"+str); } scanner.close(); } }
-
区别
-
next()
- 会等待输入,直到读取到有效字符才结束输入
- 字符前的空字符会自动去掉,字符后的空字符会被当做分隔符或结束符,所以有效字符中不能含有空
-
nextLine()
1.以enter为结束,结果会返回enter之前的所有字符,包括空
-
-
接收整数与小数
package com.okami.scanner; import java.util.Scanner; public class Dome03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //从键盘接收数据 int i = 0; float f = 0.0f; System.out.println("请输入整数:"); if (scanner.hasNextInt()){ i = scanner.nextInt(); System.out.println("整数数据:"+i); }else{ System.out.println("输入的不是整数数据!"); } System.out.println("请输入小数:"); if (scanner.hasNextFloat()){ f = scanner.nextFloat(); System.out.println("小数数据:"+f); }else{ System.out.println("输入的不是小数数据!"); } scanner.close(); } }
-
一个例子
package com.okami.scanner; import java.util.Scanner; public class Demo04 { public static void main(String[] args) { //输入多个数字,求总和与平均值,每一个数字回车确认,通过输入非数字来结束输入并输出执行结果 Scanner scanner = new Scanner(System.in); //和 double sum = 0; //输入数字个数 int m = 0; System.out.println("请输入数据:"); //通过循环判断是否还有输入,并在里面对每一次输入进行求和与统计 while (scanner.hasNextDouble()){ double x = scanner.nextDouble(); m++; sum+=x; System.out.println("你输入了"+m+"个数据,和为:"+sum); } System.out.println(m+"个数的和为:"+sum); System.out.println(m+"个数的平均值为:"+sum/m); scanner.close(); } }
顺序结构
最基本的结构,按语句的顺序依次执行。
选择结构
if选择结构
if单选择结构
语法:
if(布尔表达式){
//如果布尔表达式为true将执行该语句
}
if双选择结构
语法:
if(布尔表达式){
//如果布尔表达式为true将执行该语句
}else{
//如果布尔表达式为false将执行该语句
}
if多选择结构
语句:
if(布尔表达式1){
//如果布尔表达式1为true将执行该语句
}else if(布尔表达式2){
//如果布尔表达式2为true将执行该语句
}else if(布尔表达式3){
//如果布尔表达式3为true将执行该语句
}else{
//如果以上布尔表达式均为false将执行该语句
}
只要满足一个条件,就输出结果,所以各条件之间要互斥。
嵌套的if结构
语法:
if(布尔表达式1){
//如果布尔表达式1为true将执行该if
if(布尔表达式2){
//如果布尔表达式2也为true将执行该语句
}
}
if的执行语句也为if语句
switch多选择结构
语法:
switch(表达式){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//可以有任意个case语句
default://可选
//语句
}
switch匹配一个具体的值,break跳出switch语句,如果遇到匹配的case值,而它之后没有break,将发生穿透现象,以下语句均被执行,所以在使用时注意合理添加break。JDK7版本后支持String。
反编译
Java在执行时会先编译为class文件,也就是字节码文件,人类看不懂,还是需要转换成java文件(并非原始的java文件),将class文件转换为人类可以看懂的java文件的过程叫做反编译。
将class文件放到java文件所在目录,在IDEA中,双击打开,就得到了反编译文件。
循环结构
while循环
语法:
while(布尔表达式){
//循环内容
}
只要布尔表达式为true,循环就会一直执行下去。大多数情况下需要使循环停下来,否则会造成死循环,但响应监听场景下会使用到永远为true的情况。
do...while循环
语法:
do{
//代码语句
}while(布尔表达式);
和while不同,while是先判断后执行,do...while是先执行后判断,即使布尔表达式不为true代码也至少被执行一次。
for循环
语法:
for(初始化;布尔表达式;更新){
//代码语句
}
for循环是最有效、最灵活的循环结构,循环次数在执行前就已确定。
- 最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句
- 布尔表达式也可以是空语句
- 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减),也可以为空
- 死循环 for( ; ; ){}
增强for循环
语法:
for(声明语句:表达式)
{
//代码语句
}
主要用于数组或集合的增强型for循环
- 声明新的局部变量,变量类型必须与数组元素的类型匹配,作用域限定在循环块内,其值与此时数组元素是值相等。
- 表达式是要访问的数组名,或者是返回值为数组的方法。
package com.okami.struct;
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers={10,20,30,40,50}; //定义一个数组
for (int i = 0; i < 5; i++) {
System.out.println(numbers[i]);
}
System.out.println("====================分割线");
for(int x:numbers){
System.out.println(x);
}
}
}
break
强行退出循环,不执行循环中剩余的语句。
continue
终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
标签
”标签“是指后面跟一个冒号的标识符,例如 label:
对java来说唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。
package com.okami.struct;
public class LabelDemo01 {
public static void main(String[] args) {
//输出101到150间的质数
//质数是指除1和他本身外不能被其他因子整除的自然数
outer:for (int i = 101; i <= 150; i++) {
for (int j=2;j<i/2;j++){
if(i%j==0){
continue outer;
}
}
System.out.print(i+" ");
}
}
}
循环实例
- 计算0~100之间奇数和偶数的和
package com.okami.struct;
public class ForDemo02 {
public static void main(String[] args) {
int oddSum=0;
int evevSum=0;
for (int i = 0; i <= 100; i++) {
if(i%2!=0){
oddSum+=i;
}else{
evevSum+=i;
}
}
System.out.println(oddSum);
System.out.println(evevSum);
}
}
- 输出1~1000之间能被5整除的数,并且每行输出3个
package com.okami.struct;
public class ForDemo03 {
public static void main(String[] args) {
for (int i = 0; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.print("\n");
}
}
}
}
- System.out.println(); 打印结果并换号
- System.out.print(); 打印结果不换行
- "\t" 空格 "\n"换行
- 九九乘法表
package com.okami.struct;
public class ForDemo04 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int i1 = 1; i1 <= i; i1++) {
int sum=i1*i;
System.out.print(i1+"*"+i+"="+sum+"\t");
}
System.out.println();
}
}
}
4.输出一个三角形
package com.okami.struct;
public class TestDemo01 {
public static void main(String[] args) {
//第一步
for (int i = 0; i <= 5; i++) {
for (int j=5;j>i;j--) {
System.out.print("*");
}
System.out.println();
}
//第二步
for (int i = 0; i <= 5; i++) {
for (int j=0;j<i;j++) {
System.out.print("*");
}
System.out.println();
}
//第三步
for (int i = 0; i <= 5; i++) {
for (int j=5;j>i;j--) {
System.out.print(" ");
}
for (int j=0;j<i;j++) {
System.out.print("*");
}
System.out.println();
}
//第四步
for (int i = 0; i <= 5; i++) {
for (int j=5;j>i;j--) {
System.out.print(" ");
}
for (int j=0;j<i;j++) {
System.out.print("*");
}
for (int j=0;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
}
}
内容总结
以上是互联网集市为您收集整理的Java基础学习笔记(二)全部内容,希望文章能够帮你解决Java基础学习笔记(二)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。