学习分支与循环之前,需要掌握好基本语法,便于进行逻辑设计
(一)分支语句有if语句和swith语句
①if语句简单用法:if(关系表达式){语句体;}
案例:如果a不等于b,则交换它们的值。
if(a!=b)
{
temp=a; //将a的值临时存储到temp中
a=b; //将b赋值给a
b=temp; //将temp赋值给b;
}
if语句嵌套用法: if(关系表达式) {语句体;} else if(关系表达式){ 语句体;} else ...
if和else的关系是一一对应的。
案例:判断一个数为正数,负数还是0。
if (a<0)
System.out.println(a+"为负数");
else if(a==0)
System.out.println("零");
else System.out.println(a+"为正数");
②Switch语句格式
switch(表达式) {
case 值1:
语句体1;
break; //表示中断,结束的意思,用来结束switch语句。
case 值2: //后面跟的是要和表达式进行比较的值。
语句体2;
break;
…
default:
语句体n+1;
[break;] //表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
}
案例:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。
import java.util.Scanner;
public class Season{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
switch (month)
{
case 3:
System.out.println("春季");
break;
case 6:
System.out.println("夏季");
break;
case 9:
System.out.println("秋季");
break;
case 12:
System.out.println("冬季");
break;
}
}
}
注意事项:在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行, 直到遇到break,或者整体switch语句结束。
(二)循环语句
循环结构特征:重复做某件事情,具有明确的开始和停止标志。
循环结构的组成:
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样;
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去;
循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情;
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去。
循环结构的语法:
初始化语句: 这里可以是一条或者多条语句,这些语句可以完成一些初始化操作;
条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。例如:a<3;
循环体语句: 这里可以是任意语句,这些语句将反复执行;
条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,i--这样的操作。
①for循环
for (初始化语句;条件判断语句;条件控制语句) { 循环语句;}
案例:求1-5之间的数据和,并把求和结果在控制台输出
public class Sum{
public static void main(String[] args){
int sum = 0;
for (int i = 1; i <= 5; i++) // 初始化i=1;当i<=5时循环开始执行;每循环一次i就加1
{ sum += i; }
System.out.println("1-5之间的数据和是:" + sum);
}
}
②while循环
while ( 条件判断语句 ) { 循环体 }
案例:用while循环语句实现,打印出20个3的倍数的和
public class Sum{
public static void main(String[] args){
int sum=0,i=1;
while(i!=21){
sum=sum+(3*i);
i++;
}
System.out.println("20个3的倍数之和为:"+sum);
}
}
③do...while循环
do { 循环体语句; }while(条件判断语句);
案例:用do_while循环语句实现,打印出3的倍数,如果这个数是7的倍数则结束程序。
public class Sum{
public static void main(String[] args){
int num,i=1;
System.out.printf("三的倍数有:");
do
{
num=3*i;
System.out.printf(num+" ");
i++;
}while(num%7!=0);
}
}
三种循环的区别:for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行),do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)。
for和while的区别:条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了;条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
死循环格式:
for(;;) { }
while(true) { } //最常用死循环格式
do{ }while(true);
命令提示符窗口中Ctrl+C可以结束死循环
④跳转控制语句:用于终止循环的语句。
continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
(三)Random的作用和使用步骤
作用:用于获取随机数
步骤:
①导包
import java.util.Random;
②创建对象
Random r = new Random();
③获取随机数
int number = r.nextInt(10);//获取数据的范围:[0,10) 包括0,不包括10