【Java—超详细,都可以看懂的逻辑控制与输入输出】
目录
- 4 逻辑控制
- 5 输入输出
-
- 5.1 输出到控制台
- 5.2 系统输入
4 逻辑控制
Java中程序的逻辑控制语句
Java中的输入输出方式
4.1 顺序结构
顺序结构是什么?
是指单线程下按照代码的书写顺序一行一行向下执行
4.1.1 if…else分支
具体使用看下面(还要注意代码格式哦):
- 只有if语句
if(布尔表达式){ //满足条件的代码块}
- if…else分支
if(布尔表达式){ //满足条件的代码块}else{ //条件不满足时执行的代码}
- if …else if …else 多分支语句
if(布尔表达式){ //}else if(布尔表达式){ //}else if(布尔表达式){ //}else{ //不满足上述所有条件时的情况}
if语句 和 else if 语句是互斥的,不满足if的条件,跳到下一个else if 继续判断是否符合条件,都不符合,则走else语句。
分支语句的嵌套问题:在任意一个分支中,还可以嵌套分支
在编写代码时,需要注意:在使用多个if…else 语句时,且没有使用{},else默认匹配最接近的if语句
int a = 10;int b = 5;if(a == 10) if(b != 5) System.out.println(b);else System.out.println(a);
以上代码使用 if…else 时,没有使用{},此时else匹配的是 if(b != 5)
注意:在高级编程语言中,一个 ; 表示一行语句的结束
4.1.2 switch语句
switch语句:
switch(int|char|String|enum){ //只有这四种类型可以使用 case 内容1: //满足内容1的语句 break; case 内容2: //满足内容2的语句 break; case 内容3: //满足内容3的语句 break; default: //上述所有分支都不满足的情况 break;}
为什么每个case语句后都要加break?
case分支不加break时,代码会从第一个满足case分支开始,继续向下逐个执行,直到遇到break 或者把剩下的分支执行完毕。
4.2 循环结构
某一段代码会被重复执行很多次
4.2.1 while循环
while(循环的终止条件){ //条件为true时,代码就一直执行,条件为false时循环终止 //循环体代码}
使用while循环计算10!
public class Test { public static void main(String[] args) { int ret = 1; //用于while判断 int sum = 1; while(ret <= 10){ sum *= ret; ret++; } System.out.println(sum); }}
输出结果为:
3628800
4.2.2 break 和 continue
break: 表示终止当前的循环
continue: 表示跳过本次循环,继续下次循环
当我们需要一次跳出多个循环时,可以使用 return;
直接结束当前方法的调用
或者break label 的使用
/**break label 的使用*/public class Test { public static void main(String[] args) { int ret = 1; int sum = 1; label:while(ret <= 10){ //label 可以改变 while (ret < 2){ System.out.println("进入第二个循环"); break label; } ret++; } if(ret == 1){ //判断是否第一次进入内层循环就直接跳出所有循环 System.out.println("已经直接跳出循环"); } }}
输出结果:
进入第二个循环已经直接跳出循环
4.2.3 for循环
for循环代码格式:
for(初始化条件;循环终止条件;更新循环变量){ //循环体代码}
for循环的三个条件都是可选的,可以都不写.
int i = 1; //初始化条件for(;;){ if(i > 10){ //循环终止条件 break; } //循环体代码 i++; //更新循环变量}
5 输入输出
5.1 输出到控制台
基本语法
System.out.println(); //输出的数据自带换行System.out.print(); //输出的数据不带换行System.out.printf(); //格式化输出,和C语言的printf相似
System.out.println(); System.out.print();
这两个print的()内部,可以放置任何参数,包括引用类型,功能可以说是非常强大
printf("%d", int变量);
这是格式化输出,变量类型有相对应的转换符 (%d 是整型的转换符)
5.2 系统输入
系统输入: Scanner类
要使用Scanner类,必须要产生Scanner 的对象
Scanner in = new Scanner(System.in); //格式
我们在代码中来看它是如何具体使用的
import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入您的性别:"); String str = scanner.nextLine(); //nextLine会自动读入一行数据,要特别注意 System.out.println("请输入您的年龄:"); int age = scanner.nextInt(); System.out.println("年龄:" + age + " 性别:" + str); }}
运行结果:
请输入您的性别:男请输入您的年龄:22年龄:22 性别:男
看这个例子:
那么我们要从键盘循环读入数字应该怎么实现呢?
在这里要用到scanner.hasNextInt
import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNextInt()){ int a = scanner.nextInt(); System.out.println(a); } }}
代码功能:每输入一个整数,就输出一个整数;输入的不是整数时,代码结束。
各位大佬发现有错误时,留下评论,我会及时改正。大家一起进步😀😀😀