目录
- 4 逻辑控制
- 4.1 顺序结构
- 4.1.1 if...else分支
- 4.1.2 switch语句
- 4.2 循环结构
- 4.2.1 while循环
- 4.2.2 break 和 continue
- 4.2.3 for循环
- 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);
}
}
}
代码功能:每输入一个整数,就输出一个整数;输入的不是整数时,代码结束。
各位大佬发现有错误时,留下评论,我会及时改正。大家一起进步😀😀😀