文章目录
前言
今天给大家带来Java逻辑控制,本篇文章会给你介绍分支语句(if,switch),循环语句(while,for)以及输入,输出等,希望能给大家带来帮助!!!
逻辑控制结构分为三类:顺序结构,分支结构,循环结构。
一、顺序结构
顺序结构比较简单,按照代码顺序一行一行执行。
System.out.println("hello");
System.out.println("bit");
System.out.println("word");
// 运行结果
hello
bit
word
如果调整代码的书写顺序, 则执行顺序也发生变化
System.out.println("hello");
System.out.println("word");
System.out.println("bit");
// 运行结果
hello
word
Bit
二、分支结构
2.1 if 语句
格式1:
if(布尔表达式){
// 语句
}
如果布尔表达式结果为true,执行if中的语句,否则不执行。
格式2:
if(布尔表达式){
// 语句1
}else{
// 语句2
}
格式3:
if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2
}else{
// 语句3
}
注意:
1.分号问题:
当在if语句后面加分号时,分号成为if语句的语句体,导致{}里的语句体 与if无关。如:
int x = 20;
if (x == 10);//此处有;
{
System.out.println("hehe");
}
// 运行结果
hehe //判断无效直接打印
2.垂悬else问题:
int x = 10;
int y = 20;
if (x == 10)
if(y == 10);
else
System.out.println("hehe");
//运行结果:hehe
if / else语句中当语句体只有一条语句时可以不用加{},但出现上述情况时else是和最近的if匹配,导致语句可读性太差。所以,我们在使用语句时尽量加上{}。
2.2 switch语句
格式:
switch(表达式){
case 常量值1:{
语句1;
break;
}
case 常量值2:{
语句2;
break;
}
...
default:{
内容都不满足时执行的语句;
break;
}
}
执行流程:先计算表达式的值,然后在和case作比较,相等时执行下面语句,遇到break结束,若没有遇到break,则会直接运行下面case的语句。当没有case与表达式相等时,则会执行default语句。
注意:
1.多个case后的常量值不可以重复
2.switch的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int,注意不能是long类型。
引用类型:String常量串、枚举类型。
3.switch 后面不能跟复杂的条件,最好是一个值。
4.switch 虽然支持嵌套, 但是很丑,一般不推荐。
三、循环结构(含break,continue)
3.1 while语句
语法结构:
while(布尔表达式){
循环语句;
}
布尔表达式为true,则执行循环语句;否则结束循环
注意:
1.while语句后面可以不加{},但是只能写一条语句,所以建议都加上{}。
2.while后面的{建议和while写到一行。
3.while后面不要写分号,否则{}无效。
3.2 for循环
语法结构:
for(初始值设定;布尔类型表达式;循环变量更新方式){
循环语句
}
当布尔表达式为true时执行循环,为false时结束循环。
注意:
1.for语句后面可以不加{},但是只能写一条语句,所以建议都加上{}。
2.for后面的{建议和for写到一行。
3for后面不要写分号,否则{}无效。
3.3 do while循环
语法结构
do{
循环语句;
}while(布尔表达式);
与while基本一致,但是while是先判断布尔表达式,而do while是执行一次循环再去判断布尔表达式。
注意:
1.while后面的;不要忘记。
2.一般do while用的很少,for和while用的多。
3.4 break
作用:让循环提前停止。
注意是提前停止循环,即跳出本层循环,若还有上层循环,则会运行上层循环。如:
int i = 0;
for (i = 0; i < 3; i++){
int j = 0;
for (j = 0; j < 3; j++){
if(j == 1){
break;
}
System.out.println(i + j);
}
运行结果为:0 1 2
3.5 continue
作用:跳过本层本次循环,进行本层下次循环
注意是跳过本次循环,即不运行continue后面的语句。如:
int i = 0;
while (i < 3){
int j = 0;
while(j < 3){
if(j == 1){
j++;
continue;
}
System.out.println(i + j);
j++;
}
i++;
}
运行结果:0 2 1 3 2 4
四、 输入输出:
4.1 输出到控制台
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
注意:
1.println 输出的内容自带 \n, print 不带 \n。
2.printf 的格式化输出方式和 C 语言的 printf 是基本一致的。
代码展示:
int a = 1;
System.out.print(1);
System.out.println(1);
System.out.printf("%d", a);
格式化字符串:
这些不用死记硬背,用的时候查一下,用的多了就记住了。
4.2 从键盘输入
使用 Scanner 读取字符串/整数/浮点数
如:
Scanner input = new Scanner(System.in);
System.out.print("请输入name:");
String name = input.nextLine();
System.out.print("请输入Class:");
String Class = input.nextLine();
System.out.print("请输入ID:");
String ID = input.nextLine();
System.out.println("name:" + name );
System.out.println("Class:" + Class );
System.out.println("ID:" + ID);
运行结果:
注意:
1.字符串输入时:.next只会读取到空格,而.nextline则是读取一行,有空格也会读取到。如:
Scanner input = new Scanner(System.in);
System.out.print("请输入name1:");
String name1 = input.nextLine();
System.out.print("请输入name2:");
String name2 = input.next();
System.out.println("name1 is " + name1);
System.out.println("name2 is " + name2);
运行结果:
2.当先输入整数再输入字符串时,可能会导致读取字符串时将回车读取到,此时需要加.nextLine如:
Scanner input = new Scanner(System.in);
System.out.print("请输入整数:");
int a = input.nextInt();
input.nextLine();//此处很重要
System.out.print("请输入字符串:");
String b = input.nextLine();
System.out.println(a);
System.out.println(b);
总结
逻辑控制相关内容就到这里结束了,希望能给大家带来一点帮助,请大家多多点赞,评论,批评,谢谢大家!!!