流程控制
顺序结构
判断结构
分支结构
循环结构
一、判断结构
关键字:
if、else
格式:
// 1.单if结构 if(条件表达式){ 语句 ... } // 判断条件表达式的结果,结果为true执行代码块中的语句,结果为false不执行// 2.标准的if-else结构 if(条件表达式){ 语句a }else{ 语句b } // 判断条件表达式的结果,结果为true执行if代码块中的语句a,结果为false执行else代码块中的语句b // if代码块和else代码块一定会执行其中一个,并且也只会执行其中一个// 3.多条件的if-else结构 if(条件表达式1){ 语句a }else if(条件表达式2){ 语句b }else if(条件表达式3){ 语句c } ... else{ 语句n } // 从上到下依次判断条件,条件的结果为true执行对应的代码块,执行完毕后if-else结构结束,条件的结果为false,继续判断下一个条件,如果没有任何一个条件结果为true,则执行最后一个else中的语句n// 4.if-else的嵌套 if(){ if(){ }else(){ } }else if(){ if(){ }else(){ } }else if(){ if(){ } } // 无论是内层的if-else还是外层的if-else都遵循if-else结构执行逻辑
注:如果
if
或者else
后没有{}
,那么if、else
只能影响离它最近的一条语句
二、分支结构
关键字:
switch、case、break、default
格式:
switch(表达式/值){ case 值1: 语句a break; case 值2: 语句b break; case 值3: 语句c break; ... default: 语句n break; } // 计算表达式的值,将这个结果从上到下依次与每一个case后的值做比较,如果某一个case的值与表达式的结果相同则执行对应的语句,如果没有任何一个case后的值与表达式的结果相同则执行default后的语句注:
每一个case后值必须唯一
switch后表达式结果的类型只能是byte、short、int、char、String
default不是必需的
每一个case和default的位置都是任意的
break在switch-case结构中用于结束(跳出)整个结构,删除break会让整个switch-case结构具有穿透性
三、循环结构
关键字:
while、do、for、break、continue
while循环
while(条件表达式){ 循环体 } // 判断条件表达式的结果,结果为true执行循环体,继续判断条件,条件的结果为true,执行循环体,再判断条件,直到条件表达式的结果为false,循环结束
do-while循环
do{ 循环体 }while(条件表达式); // 先执行循环体,判断条件表达式的结果,结果为true执行循环体,继续判断条件,条件的结果为true,执行循环体,再判断条件,直到条件表达式的结果为false,循环结束
for循环
for(1初始化;2条件;3步进){ 4循环体 } // 1243243243243...2
关键字break和continue
break:可以用在switch-case和循环结构中,作用是结束整个结构
continue:只能用在循环结构中,作用是结束当前这次循环继续下一次循环
死循环
// while的死循环 while(true){ } // do-while的死循环 do{ }while(true); // for的死循环 for(;;){ }
四、Random和Scanner
Random类:用于产生随机数
用法:
// 1.创建Random对象 Random r = new Random(); // 2.调用产生随机数的方法 // (1)生成一个int范围内的随机数 int num1 = r.nextInt(); // (2)生成指定范围内的随机数 int num2 = r.nextInt(int n);// [0,n-1] // (3)生成[0,1) double num3 = r.nextDouble();
Scanner类:用于接收键盘输入
用法:
// 1.创建Scanner Scanner sc = new Scanner(System.in); // 2.调用接收键盘输入的方法 // (1)接收键盘输入的字符串 String s = sc.next(); // (2)接收键盘输入的整数 int num = sc.nextInt(); // (3)接收键盘输入的小数 double n = sc.nextDouble();