1.1程序执行流程
1.1分支语句
1.1.1 if.....
int a = 59;
if(a >= 60)System.out.println("你考试及格了!");
1.1.2 if...else...
int a = 59;
if (a >= 60){
System.out.println("你考试及格了!");
}else{
System.out.println("你考试不及格!");
}
1.1.3 if ....else if .....
int a = 3500;
if(a < 1000){
System.out.println("倔强青铜");
}else if(a >= 1000 && a < 2000){
System.out.println("不屈白银");
}else if(a >= 2000 && a < 3000){
System.out.println("荣耀黄金");
}else if(a >= 3000 && a < 4000){
System.out.println("华贵铂金");
}else if(a >= 4000 && a < 5000){
System.out.println("璀璨钻石");
}else if(a >= 5000 && a < 6000){
System.out.println("超凡打湿");
}else{
System.out.println("最强王者");
}
1.1.3 switch
除了if 语句,Java中还提供了switch语句用于分支判断,switch语句通常用于对某些特定值的分支。switch中间的变量只能是int,byte/short/char填到中间是在不损失精度的情况下向上转型为int,string通过底层算法(hash)转换成了int
语法
switch(变量){
case 值1:
执行语句;
break;
case 值2:
default:
执行语句
}
案例
根据月份,判断季节
public static String m3(int month){
String j = null;
switch (month){
case 3:
case 4:
case 5:
j = "春天";
break;
case 6:
case 7:
case 8:
j = "夏天";
break;
case 9:
case 10:
case 11:
j = "秋天";
break;
case 12:
case 1:
case 2:
j = "冬天";
break;
default:
j = "输入错误,没有这个月份";
}
return j;
}
递归
方法自己调用自己
实例:从1输出到100
public static int a = 1;
public static void m1(){
a++;
System.out.println(a);
if (a > 100){
return;
}
m1();
}
2扩展:标准输入&随机数
2.1标准输入(System.in)之Scanner类
Java为了获取用户的输入,提供了一个scanner工具类,获取系统输入 :System.in
nextInt ( ) 获取用户输入的整数
next() 获取用户输入的字符串
public static void m3() {
System.out.println("请输入一个数字");
Scanner sc = new Scanner(System.in);
int a =sc.nextInt();
System.out.println(a);
}
2.2随机数
随机数是由数学类Math提供的一个静态方法random()生成的,生成的随机数范围0-1之间的浮点数
public static void m4() {
double d = Math.random();
int z = (int)(d*10);
System.out.println(d);
System.out.println(z);
}
练习题:
1.先随机一个数字
2.让用户一个数字
3.输入之后让输入的数字与随机数相比较,如果比随机数大,则提示大了,小了就提示小了,并提示用户重新输入数字,相等就提示猜对了,整个程序结束
public static void m5(){
System.out.println("请入你猜的数字:");
int input = sc.nextInt();
if(input > ran){
System.out.println("你输入的数字太大,请重新输入!");
}else if(input < ran){
System.out.println("你输入的数字太小,请重新输入!");
}else{
System.out.println("恭喜你,猜对了,这个数字就是"+ran);
return;
}
m5();
}
3循环语句
3.1循环概述
在实际开发中经常需要实现一些需要反复执行的代码,例如:遍历一个数组,业务逻辑代码的重复执行,增加测试数据等,因此Java中提供了常见的循环解决方法:
1 for循环
2 while循环
3 do ....while循环
3.2循环语句分类
3.2.1循环语句 - for
for 循环是常见的一种循环,特点是常用与循环次数已知的情况下
语法
for()初始变量;循环条件;步长) {
//循环体
}
for:循环关键字
初始变量:初始值表达式,例如 int i=0
循环条件:循环语句执行的依据,条件满足,则执行循环,不满足则结束循环,例如: i<10
步长: 每次循环执行后对初始值的增减,例如 i++或i--
循环体: 需要反复执行的内容
案例代码
for(int i=0;i<10000;i++) {
System.out.println("helloworld"+i);
}
以上代码表示意思:
循环输出helloworld 10000次
3.2.2 循环语句- whlie
while循环是另一种循环的体现形式,一般用于对于循环次数不定的业务(比如对于集合中的元素的遍历),while循环的执行次数一般是0-n次
语法
while(布尔表达式){
//循环体
}
判断是否满足循环条件
若满足则执行循环体,不满足则不执行
案例
int t =0;
//初始变量
int i= 1;
//判断是否满足循环条件
while(i<=1000) {
System.out.println(i);
t +=i;
//步进
i++;
}
System.out.println("计算结果:"+t);
3.2.3循环语句 do...while
do ...while循环是基于while循环的一个变种,do....while循环不论条件是否满足至少会执行一次,即do...while的执行次数是1-n次
语法
do{
//循环体
}while(布尔表达式)
直接进入循环执行一次
判断是否满足循环条件
案例
int i=100;
do{
System.out.println(i);
i--;
}while(i>=1);
3.3循环结束 break&continue
对于循环语句,通常需要执行到满足结束条件时才对循环结束,如果需要在循环期间根据一些特定的业务需求结束程序,则可以使用break和continue关键字来对循环结果或者跳跃
break关键字
break最早出现在switch语句中用于结束case(防止case穿透),在循环语句中break用于结束整个循环.
int i=0;
while(true) {
if(i>50){
break;
}
System.out.println(i);
i++;
}
以上代码含义:
循环从1,2,3....开始输出,当i的值大于50时,循环结束。
break关键字在while 循环中出现几率较大
continue关键字
continue关键字主要用于循环语句中跳过一次循环,后续的循环不受影响
for(int i=1;i<=100;i++) {
if(i%2 !=0) {
continue;
}
System.out.println(i);
}
关于循环中断的补充
除了使用break和continue之外,return也可以用于结束循环,实际return用于结束方法
在for循环中return和break的区别
终止循环,终止循环的运行 break; 终止整个方法的运行 return;
3.4嵌套循环
嵌套循环即在循环内部嵌套其他循环,常见于:对二维数组的遍历,功能菜单的输出,算法题等
//行
for(int i=1;i<10;i++) {
//列
for(int j=1;j<=i;j++) {
//输出
System.out.print(j+"*"+i+"="+(i*j)+" ");
}
//换行
System.out.println();
}
练习: 输出一个指定行数的等腰三角形
public class Demo{
public static void printShape(int row) {
//行
for(int i=1;i<=row;i++) {
//空格
for(int j=row;j>= i ;j--) {
System.out.print(" ");
}
for(int k=1 ;k <=2*i-1;k++) {
System.out.print("*");
}
//换行
System.out.println();
}
}
public static void main(String[] args) {
printShape(100);
}
}