【JAVA】|JAVA语言基础----流程控制

键盘录入

步骤:
1、导包----获取信息的位置
2、找到Scanner
3、获取数据

/**
 * 键盘录入
 * @author tarena
 *
 */
public class JavaDemo1 {

	public static void main(String[] args) {
		//找到Scanner
		Scanner sc = new Scanner(System.in);
		//获取数据
		//int num = sc.nextInt();//获取整数
		String s = sc.nextLine();//获取一行
		System.out.println(s);

	}

}

流程控制语句

顺序结构
绝大部分代码从上往下由左往右一次编译和执行
选择结构
在这里插入图片描述

if语句[范围选择](提供三种格式语句)
1、if语句
if语句格式(提供一个选项,可能有结果,可能没结果)

if (判断条件) {
语句体
}

执行流程
首先进行判断,如果判断结果是true,就执行语句体,语句体执行完毕if语句就结束了, 如果判断结果是false,直接跳过if语句

public class XuanZeIf {

	public static void main(String[] args) {
		//衣服价格
		int price = 1999;
		
		//剩余的钱
		int money = 200;
		
		//进行选择判断
		//如果语句体只有一句话,就可以省略大括号不写
		if(money >= price){
			System.out.println("买买买!!!");
			
		}
		
		
		//其他语句
		System.out.println("家里失火了,回家。。。。。。");

	}

}

2、if···else语句
格式

  if (condition) {
			语句体1
		} else {
			语句体2
		}

执行流程
先去执行判断,如果判断结果为true执行语句体1,执行完语句体1, if语句结束,如果判断结果为false执行语句体2,执行完语句体2,if语句结束
当if语句格式2有返回值时和三目等效转换

public class XuanZeIf1 {

	public static void main(String[] args) {
		//求两个整数的最大值
		int a = 1;
		int b = 2;
		int c = 3;
		if (a>b) {
			System.out.println(a);
		} else {
			System.out.println(b);
		}
		
		
		
		//求三个整数最大值
		if (a>b) {
			if (a>c) {
				System.out.println(a);
			} else {
				System.out.println(c);
			}
		}else{
			if (b>c) {
				System.out.println(b);
			} else {
				System.out.println(c);
			}
		}
		
		
	}

}

3、else···if(提供多个选择 只有一个返回结果)
格式

if(判断条件){
语句体1;
}else if(判断条件){
语句体2
}…
.
}else{
语句体n+1
}

执行流程:
执行判断条件1,如果为true执行语句体1执行完结束if语句,如果是false执行判断条件2,如果是true则结束if语句, 如果是false循环上述步骤知道所有判断条件都为false, 则执行else中的语句体,结束if语句
数据测试:1、正确数据 2、边界数据 3、错误数据

public class XuanZeIf2 {

	public static void main(String[] args) {
		//提供输入召唤师的星星数,返回对应段位
		Scanner sc = new Scanner(System.in);
		int xing = sc.nextInt();
		
		//选择判断----返回对应段位
		if (xing >= 0 && xing <= 3) {
			System.out.println("倔强青铜");
		}else if (xing > 3 && xing <= 10) {
			System.out.println("不屈白银");
		}else if (xing >10 && xing <= 20) {
			System.out.println("荣耀黄金");
		}else if (xing > 20 && xing <= 30 ) {
			System.out.println("华贵铂金");
		}else if (xing > 30 && xing <= 50) {
			System.out.println("永恒钻石");
		}else if (xing > 50 && xing <= 90) {
			System.out.println("星耀");
		}else if (xing > 90 && xing <= 150) {
			System.out.println("荣耀王者");
		}else if(xing >= 150 ){
			System.out.println("嘴强王者");
		}else{//统一非正常数据
			System.out.println("亲!您输入的数据有误");
		}
	}

}

switch语句[列举值再选择]
在这里插入图片描述

格式

switch(表达式){
  	case 值1:
      	语句体1;
      	break;
  	case 值2:
      	语句体3;
      	break;
  	······
  	default:
           语句体n+1;
           break;
  		}

执行流程
先计算出表达式的值,和每个case的值进行比较, 如果有相等的执行对应的语句体执行break语句结束, 如果没有相等的执行default里的语句体执行break语句结束
注意:
1、case的值时有且不能重复的
2、表达式的值类型支持byte,shaort.char,int ,从jdk1.5开始支持枚举类型,从jdk1.7开始支持string类型
3、支持省略break。产生case穿透效果,(输入月份返回对应季节)
4、支持省略default(选择题)
5、结束条件(1、遇见break 2、执行到代码最后一行自行结束)

public class Switch {

	public static void main(String[] args) {
		//需求  输入整数,返回对应的星期
		Scanner sc = new Scanner(System.in);
		int week = sc.nextInt();
		
		//选择匹配
		switch (week){
		case 1:
			System.out.println("是周一");
			break;
		case 2:
			System.out.println("是周二");
			break;
		case 3:
			System.out.println("是周三");
			break;
		case 4:
			System.out.println("是周五");
			break;
		case 5:
			//System.out.println("周六");
			break;
		case 6:
			System.out.println("是周天");
			break;
		}
		
	}

}

switch选择题

public static void main(String[] args) {
		//题干
		System.out.println("从下列选项中选择出你最喜爱的人 ");
		
		//选项
		
		System.out.println("A 苍老师");
		System.out.println("B 罗志祥");
		System.out.println("C PDD");
		System.out.println("D 迪丽热巴");
		
		
		//录入选项
		Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		
		//选择
		switch(s){
		case "A":
			System.out.println("选择错误!!扣10分");
			break;
		case "B":
			System.out.println("选择错误!!扣20分");
			break;
		case "C":
			System.out.println("Congratulations!");
			break;
		case "D":
			System.out.println("选择错误!!扣20分");
			break;
		}

	}

}

循环结构
在这里插入图片描述

for循环
for循环(循环范围确定)
格式:

for(初始值;判断条件;控制条件){
循环体;
}

执行流程
先去计算出初始值,拿着初始值和判断条件进行比较,如果结果为true,执行循环体,执行控制条件,改变初始值拿着改变的初始值和判断条件进,如果为false,则直接跳出循环

//示例代码1
public class ForDemo1 {

	public static void main(String[] args) {
		// 打印10遍helloworld
		for (int i = 1; i <= 10; i++) {
			System.out.println("helloworld");

		}
		
	}

}

for循环简单练习

public static void main(String[] args) {
//1、输出1~10
		for (int i = 1; i <= 10; i++) {
			System.out.println(i);
		}
		
// 2、求1~10的和
		int sum = 0;
		for (int i = 1; i <= 10; i++) {
			sum += i;
		}
		System.out.println(sum);
		
		
//3、1~10偶数和

		方法1   
		 int sum = 0;
		for (int i = 1; i <= 100; i++) {
			if((i&1) == 0){
				sum += i;
			}
		}
		System.out.println(sum);
		
		方法二
		for(int i=2;i<=100;i+=2){
		   sum += i;
		}
			System.out.println(sum);
		
		
		
		
//3、输出水仙花数
		
规律:任意位数%10     个位  
      任意数/10%10    十位
      任意数/100      百位
		 
		int a,b,c,j=0;
		for (int i = 100; i < 1000; i++) {
			a = i /100 %10;//个位
			b = i / 10 %10;//十位
			c = i % 10;//百位
			if ((a*a*a+b*b*b+c*c*c) == i) {
				System.out.println(i);
				j++;
			}
		}
//4、统计水仙花数的个数
		System.out.println("共有"+j+"个水仙花数");
		
	}

while循环(循环范围不确定)

 格式
 	初始值
	while(判断条件){
	循环体;
 	控制条件;
	}

执行过程:
先去计算出初始值,拿着初始值和判断条件进行比较,如果结果为true,执行循环体,执行控制条件,改变初始值拿着改变的初始值和判断条件进行比较,如果为true就重复上述操作,直到判断条件结果值为false,如果为false,则直接跳出循环

public class WhileDemo1 {

	public static void main(String[] args) {
		//首付
		int price = 20000 * 30;
		
		//存的钱
		int leftMoney = 0;
		
		//统计数
		int count = 0;
		
		//循环
		while (leftMoney < price) {
			//每月存钱
			leftMoney += 5500;
			
			//
			count++	
		}
		
		//
		System.out.println(count * 1.0 / 12);

	}

}

dowhile循环(最少执行一次)
格式

	初始值
	do{
		循环体;
		控制条件;
	}while(判断条件);

执行流程
先去计算初始值,执行循环体,执行控制条件,拿着改变的初始值和判断条件进行比较,如果为true执行循环体执行控制条件,拿着改变的初始值和判断条件进行比较,如果为true,重复执行上述操作直到判断结果为false循环结束

public class DoWhileDemo {

	public static void main(String[] args) {
		// 打印10遍helloworld
		int i = 1;
		do{
			System.out.println("HelloWorld");
			i++;
		}while(i <= 10);

	}

}

循环练习

1、用“*”打印矩形
/**
 * 打印如下图形
 * 
 *       *****
 *       *****
 *       *****
 *       *****
 *       *****
 * @author tarena
 *
 */
public class Demo {

	public static void main(String[] args) {
		//打印两颗星
		//ln----换行
		//System.out.print("*");
		//System.out.print("*");
		
		
		//打印一行星星
		//for (int i = 1; i <= 5; i++) {
		//	System.out.print("*");
		//}
		//换行
		//System.out.println();
		
		
		
		//循环嵌套
		for(int i = 1;i <= 5;i++){//外层循环----行数
			for (int j = 1; j <= 5; j++) {//内层循环----列数 
				System.out.print("*");
			}
			System.out.println();
		}
		

	}

}

2、打印九九乘法表

/**
 * 打印九九乘法表
 * @author tarena
 *
 */
public class Demo1 {

	public static void main(String[] args) {
		for (int i = 1; i <= 9; i++) {//行数
			for (int j = 1; j <= i; j++) {//列
				System.out.print(j + "*" + i+ "=" + (i*j) + "\t");
			}
			//换行
			System.out.println();
		}
	}
}

三种循环的区别和联系
循环范围确定推荐for循环,如果循环范围不确定推荐while循环,最少执行一次推荐dowhile循环
三种循环可以等价转换
三种循环----死循环
for循环初始值后面不能使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值