一、控制语句的种类
java控制语句主要分为7种
1.控制选择结构语句
- if, if else
- switch
2.控制循环结构语句
- for
- while
- do while
3.改变控制语句顺序
- break
- continue
一、控制选择结构语句
1.if,if else语句
关于java语言中的if语句,属于选择结构,if语句又被称为分支语句/条件控制语句:
1.if语句的语法结构:四种编写方式
第一种:
if(布尔表达式){
java语句;
}
第二种
if(布尔表达式){
Java语句;
}else{
java语句;
}
第三种
if(布尔表达式){
java语句;
}else if(布尔表达式){
java语句;
}
else if(){
}
第四种
if(布尔表达式){
Java语句;
}else{
java语句;
}
第三种
if(布尔表达式){
java语句;
}else if(布尔表达式){
java语句;
}
else if(){
}else{
}
4.所有控制语句都可以嵌套使用,只要合理嵌套就行
注意:嵌套使用的时候,代码格式要保证完美【该缩进的时候必须要缩进】
5.if语句的分支中只有一条java语句的话,大括号可以省略不写,不推荐
if(true/false)java语句;
import java.util.Random;
//导包
public class call
{
public static void main(String[] args){
//创建一个随机数对象r
Random r=new Random();
//在0-11这12个数中产生一个随机数赋值给i
int i=r.nextInt(12);
String name0="王海文";
String name1="李宝林";
String name2="田雨";
String name3="桑建武";
String name4="王龙翔";
String name5="郭佳讯";
String name6="陈敬瑜";
String name7="魏仲豪";
String name8="王宇飞";
String name9="高健";
String name10="李壮壮";
String name11="张禄";
//判断i的值并打印输出相对应的姓名
if(i==0){
System.out.println(name0);
}
else if(i==1){
System.out.println(name1);
}
else if(i==2){
System.out.println(name2);
}
else if(i==3){
System.out.println(name3);
}
else if(i==4){
System.out.println(name4);
}
else if(i==5){
System.out.println(name5);
}
else if(i==6){
System.out.println(name6);
}
else if(i==7){
System.out.println(name7);
}
else if(i==8){
System.out.println(name8);
}
else if(i==9){
System.out.println(name9);
}
else if(i==10){
System.out.println(name0);
}
else if(i==11){
System.out.println(name11);
}
}
}
if,else if语句代码示例,随机点名系统
2.switch语句
1.switch语句也属于选择结构,也是分支语句
2.switch语句语法结构
switch(int或String类型的字面值或变量){
case int或String类型的字面值或变量:
java语句;
break;
case int或String类型的字面值或变量:
java语句;
break;
default:
java语句;
}
3.switch语句的执行原理:
switch后面小括号当中的“数据”和case后面的“数据”进行一一匹配,匹配成功的分支语句执行。
4.匹配成功的分支执行,分支当中最后有break语句的话整个switch语句终止。
5.匹配成功的分支执行,分支当中没有break语句的话,直接进入下一个分支执行【不进行匹配】,这种现象被称为case穿透现象。
6.所有分支都没有匹配成功,当有default语句,会执行default分支当中的程序
7.switch后面和case后面只能是int或String类型的数据,不能使探测其他类型,当然byte、short、char也可以直接写到switch和case后面,因为可以自动转换成int。
8.case可以合并:
int i=10;
switch(i){
case 1:case 2:case 3:case 10:
System0out.println("aaa")
}
*/
import java.util.Scanner;
public class workday
{
public static void main(String[] args){
System.out.println("请输入1-7中任意数字");
Scanner sc=new Scanner(System.in);
//控制台输入,后边说
int num=sc.nextInt();
switch(num){
case 1:
case 2:
case 3:
case 4:
case 5:
//若num=1,2,3,4,5都会执行输出去上班
System.out.println("滚去上班");
break;
case 6:
case 7:
System.out.println("尽情嗨起来");
break;
default:
System.out.println("大傻逼,输错了");
break;
}
}
}
switch语句代码示例
二、控制循环结构语句
1.for循环
1.for循环的结构
for(初始化表达式:布尔表达式:更新表达式){
是需要重复执行的代码片段【循环体:由java语句构成】
}
2.for循环的执行过程/重复原理?
2.1 初始化表达式、布尔表达式、更新表达式都不是必须的,但是两个分号是必须的;
2.2 初始化表达式最先执行,并且在整个for循环当中只执行一次
2.3 布尔表达式必须是true/false
2.4 for的执行过程
for(① ; ② ; ③){
④
}
第一步,执行①
第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步
第三步,执行④
第四步,执行③,然后重复执行第二步
第五步,退出循环
用for循环打印菱形(嵌套):
public class circulation
{
public static void main(String[] args){
//这个是打印直角三角形
for (int i=1;i<=7;i++ )
//外层循环控制行
{
for (int j=1;j<=i ;j++ )
{
System.out.print("*");
}
System.out.println("\n");
}
//倒序排列,倒直角三角
for (int i=1;i<=9 ;i++)
{
for (int j=9;j>=i ;j-- )
{
//当j大于i时打印输出*,例如当i=1,j=9,j>i,输出*,j-1=8>i=1,继续输出*,当j--到1时,j=i,条件不满足,结束本次循环
//外层循环此时i<9,i+1=2<9,满足条件,再进行内层for循环,以此往复。
System.out.print("*");
}
System.out.println("\n");
}
//打印菱形的2组for循环,并且每组for循环里又嵌套3个for循环,共8个for循环
for (int i=1;i<=8 ;i++ )
{
for (int k=8;k>i ;k-- )
{
//当满足k>i这个条件就打印空格
System.out.print(" ");
}
//打印完空格后紧接着在空格后边打印*
for (int j=1;j<=i ;j++ )
{
System.out.print("*");
}
//上边循环打印完成后紧接着继续打印一组*
for (int j=1;j<=i ;j++ )
{
System.out.print("*");
}
//"\n"是一个转义字符,为换行
System.out.println("\n");
}
//这是倒菱形的下半部分,倒三角形
for (int i=1;i<=7 ;i++)
{
for (int k=1;k<=i ;k++ )
{
System.out.print(" ");
}
for (int j=7;j>=i ;j-- )
{
System.out.print("*");
}
for (int j=7;j>=i ;j-- )
{
System.out.print("*");
}
System.out.println("\n");
}
/*for (int i=1;i<=8 ;i++ )
{
for (int k=8;k>i ;k-- )
{
System.out.print(" ");
}
for (int j=1;j<=i ;j++ )
{
System.out.print("*");
}
System.out.println("\n");
} */
}
}
2.while循环
1、while和do while循环语法结构
while(布尔表达式){
循环体
}
2.while循环的循环次数:
0~N次
注意:while循环的循环体可能执行次数为0次
3.do while循环
do {
执行语句
} while(循环条件){};
先执行再循环
4.无限循环
while(true){}
或
for(;;){}
无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
class note11
{
public static void main(String[] args)
{
while(true){
System.out.println("死循环");
}
//编译器检测到该程序永远都无法被执行,所以编译报错
System.out.println("Hello World!");
}
}
import java.util.Scanner;
import java.util.ArrayList;
class Bitch
{
public static void main(String[] args)
{
ArrayList<Fuck> list=new ArrayList<Fuck>();
//while无限循环与switch语句嵌套使用
while(true){
switch (Choose())
{
case 1:
inventory(list);
break;
case 2:
AddGoods(list);
break;
case 3:
alter(list);
break;
case 4:
delete(list);
break;
case 5:
//当用户输入5的时候结束循环,否则循环一直执行
return;
default:
System.out.println("您选择的功能有误,请重新输入!");
break;
}
}
}
//用户选择;
public static int Choose(){
System.out.println("-------------------库存管理--------------");
System.out.println("1.查看库存清单");
System.out.println("2.添加商品信息");
System.out.println("3.修改商品信息");
System.out.println("4.删除商品信息");
System.out.println("5.退出");
Scanner sc=new Scanner(System.in);
System.out.println("请输入您的选择");
int num=sc.nextInt();
return num;
}
//添加商品信息
public static void AddGoods(ArrayList<Fuck> list){
Scanner sc=new Scanner(System.in);
while (true)
{
System.out.println("1.继续添加商品");
System.out.println("2.退出");
int number=sc.nextInt();
if (number==1)
{
Fuck you=new Fuck();
System.out.println("请输入您要添加的商品品牌/尺寸/价格/数量");
you.brands=sc.next();
you.size=sc.nextDouble();
you.price=sc.nextDouble();
you.counts=sc.nextInt();
list.add(you);
}else{
return;
}
inventory(list);
}
}
//修改商品信息
public static void alter(ArrayList<Fuck> list){
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("1.继续修改");
System.out.println("2.退出");
int number=sc.nextInt();
switch(number){
case 1:
System.out.println("---------当前商品库存信息--------");
System.out.println("商品编号\t商品品牌\t库存数量");
for(int i=0;i<list.size();i++){
System.out.println((i+1)+"\t"+list.get(i).brands+
"\t"+list.get(i).counts);
}
System.out.println("请输入您要修改的商品编号:");
int num=sc.nextInt()-1;
System.out.println("请输入您要修改的商品数量:");
list.get(num).counts=sc.nextInt();
inventory(list);
break;
case 2:
return;
default:
System.out.println("大傻逼");
break;
}
}
}
//删除商品信息
public static void delete(ArrayList<Fuck> list){
System.out.println("---------当前商品库存信息--------");
System.out.println("商品编号\t商品品牌\t库存数量");
for(int i=0;i<list.size();i++){
System.out.println((i+1)+"\t"+list.get(i).brands+
"\t"+list.get(i).counts);
}
System.out.println("请输入您要删除的商品编号:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt()-1;
list.remove(num);
}
//查看库存清单
public static void inventory(ArrayList<Fuck> list){
System.out.println("---------------商城库存清单-------------");
System.out.println("商品品牌\t商品尺寸\t商品价格\t库存数量");
double SumCounts=0;
int SumPrice=0;
for (int i=0;i<list.size();i++ )
{
System.out.println(list.get(i).brands+'\t'+list.get(i).size+'\t'+list.get(i).price+'\t'+list.get(i).counts);
SumCounts+=list.get(i).counts;
SumPrice+=list.get(i).counts*list.get(i).price;
}
System.out.println("-----------------------------------------");
System.out.println("总库存数:"+SumCounts);
System.out.println("总金额:"+SumPrice);
}
}
无限循环
三、循环控制语句
break
1.break语句同样可以使用在循环语句当中,用来终止循环
2.break语句可以使用在for,while,do...while循环语句中用来跳出循环
continue
1.表示继续,下一个
2.主要出现在循环语句控制循环的执行
3.break和continue的区别?
break表示循环不执行了
continue表示直接进入下一个