Java-5.逻辑控制


在这里插入图片描述

前言

今天给大家带来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);

总结

逻辑控制相关内容就到这里结束了,希望能给大家带来一点帮助,请大家多多点赞,评论,批评,谢谢大家!!!
在这里插入图片描述

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值