2.流程化控制
1.顺序结构
2.选择结构
加入其中有一个是true,则执行对应的java序列,然后整个if语句结束,不在执行后面的if-else语句
public class Test {
public static void main(String[] args){//主方法,格式是固定的
int i=35;//色很难过ing变量赋值
if(i>100){//判断其是否是大于100 ,是,则打印出下面语句
System.out.println("i>100");//输出打印到屏幕
}
else if(i>200){
System.out.println("i>200");
}
else if (i<40){
System.out.println("i<40");
}
else if(i==35){
System.out.println("i=35");
}
else{
System.out.println("进入else中");
}
System.out.println("if 语句已经完成");
}
}
结果:
i<40
if 语句已经完成
if语句允许嵌套使用
--
Switch 语句
可以实现分支,因此称为分支语句
Switch :关键字
Switch(表达式)
{
Case 常量1
语句序列1
Break;
Case 常量2
语句序列 2;
Break;
}
---
实战演练
假设女士服装身高和尺码的对音质是155位s(小号),160为M(中号),165为L(大号),170为加大号(xl)175以上为XXL(特大号)使用if语句即实现
代码如下:
import java.util.Scanner;//导入Scanner的包
public class Test {
public static void main(String[] args){//主方法,格式是固定的
Scanner sc =new Scanner(System.in);//创建键盘输入类的对象
System.out.println("输入身高:");
double height=sc.nextDouble();//从控制台输入身高
if(height>=155&&height<160){
System.out.println("155-160的衣服尺码是s");
}
else if(height<165){
System.out.println("160-165的衣服尺码是m");
}
else if(height<170){
System.out.println("165-170的尺码是l");
}
else if(height<=175){
System.out.println("170-175的尺码是xl");
}
else {
System.out.println("175的尺码是xxl");
}
}
}
输出将结果:
输入身高:
165
165-170的尺码是l
说明;
从控制台上获取输入的值:
[if !supportLists]1. [endif]导入Scanner包
Import java.util.Scanner;
[if !supportLists]2. [endif]创建键盘输入类的对象 sc ,sc近视一个变量名,可以按照表示负的规范来取名
Scanner sc=new Scanner(System.in);
[if !supportLists]3. [endif]获取一个double类型的值
Double height=sc.nextDouble();//如果要读取一个int型的数字,sc.nextInt();
读取字符串类型的有些特殊,使用的方法是sc.next();不能直接从控制台上直接读取一个字复兴的数据;但是可以通过读取字符串类型的值,然后读取第一个字符即可
---------
案例:
根据手机号判断运营商:
根据的后记号码的前三位判断运营商,如果输入的书籍号码前单位是138,则输出移动,如果是133,则输出电信,如果是186,则输出联通个,如果输出其他手机号码,则输出:未知运营商,使用switch
import java.util.Scanner;//导入Scanner的包
public class Test {
public static void main(String[] args){//主方法,格式是固定的
Scanner sc=new Scanner(System.in);
System.out.println("输入电话号码:");
long input=sc.nextLong();
int tel=(int)(input/100000000);//强制转换,获取手机号的前三位
switch(tel){
case 138:
System.out.println(input+" 的运营商是移动");
break;
case 133:
System.out.println(input+" 的运营商是电信");
break;
case 186:
System.out.println(input+" 的运营商是联通");
break;
default:
System.out.println("未知运营商");
break;
}
}}
输出结果是:
输入电话号码:
13812345678
13812345678 的运营商是移动
---
循环结构
While 循环中必须用有一个促使循环结束的表达式,加入没有改表达式,会进入死循环
例如促使循环结束的表达式’i—“
public class Test {
public static void main(String[] args){//主方法,格式是固定的
int i=5;//声明int类型变量,初始值是5
while(i>2){//while循环,当i>2时,执行循环体
System.out.println("i==="+i);//输出循环体
i--;//每次循环都把i的值键1,知道2的时候,结束循环
}
}
}
输出结果是:
5
4
3
do…while循环
语句中的表达式即使是false,也要循环一次
While与语句最后用;来结束,while 语句则不用
For语句
For语句是使用循环最频繁的循环结构,他的作用同样是不断地执行 循环体的内代码,知道这个条件被慢组才终止循环。语法结构如下
--
案例:
给定一个数,求得个位数的乘积
假设一个数是123,呢么个位数的乘积为1x2x3=6
题目的要求是任意数
import java.util.Scanner;//导入Scanner的包
public class Test {
public static void main(String[] args){//主方法,格式是固定的
Scanner sc=new Scanner(System.in);
System.out.println("输入一个整数:");
int num=sc.nextInt();
int result=1;//存放乘积
for(int i=1;i<=num;i=i*10){
result=result*(num/i%10);
}
System.out.println(num+"个位数的乘积"+result);
}
}
输出结果是:
输入一个整数:
125
125个位数的乘积10
--
跳转工作
break,return,continue
--
默认请况下:
使用break会跳出while循环
public class Test {
public static void main(String[] args){//主方法,格式是固定的
int k=0,i=0;
outer:for(int a=0;a<2;a++){//设置标签outer后面加冒号:
System.out.println("A的值==="+a);
while(true){
if(k>100){
break outer;//这里指明跳出把标签为outer的循环结构
}
k=k+i;
i++;
}
}
System.out.println("K的值==="+k);
}
}
输出的结果是:
A的值===0
K的值===105
--
Continue语句
可以终止本次循环,继续执行下一次循环操作,他与break不同,只是中汉字循环的一次,常用来过滤不符合要求的数据
--
案例
public class Test {
public static void main(String[] args){//主方法,格式是固定的
for(int i=0;i<4;i++){//for 循环,i小于4 是会作出打印输出的而操作
if(i==2){//判断,当i的值小于4时会作出打印输出操作
continue;
}
System.out.println("I的值是==="+i);
}
}
}
输出结果是:
I的值是===0
I的值是===1
I的值是===3
-----
Return 语句
他可以方在方法内的任何一个地方,同常用来结束流程,不管是否在循环中掉用return,流程会重新返回到该调用该方法的语句处
--
案例,输出1-50内,能被3和7整除的数
利用for循环
--
猜数游戏:
产生随机数的语句如下:
Random rd=new Random();
Int num=rd nextInt(整数);该语句用于产生小于指定整数的随机数,
如:产生1-10的随机数
import java.util.Scanner;//导入Scanner的包
import java.util.Random;
public class Test {
public static void main(String[] args){//主方法,格式是固定的
Random rd=new Random();
Scanner sc=new Scanner(System.in);//创建键盘输入类的对象
int num=rd.nextInt(10)+1;//产生一个1-10 的随机数
int times=0;//存放猜数的次数
System.out.println("==================================");
System.out.println("==============猜数游戏============");
System.out.println("==================================");
while(true)
{
System.out.println("请输入一个整数:");
int guessNum=sc.nextInt();
times=times+1;//猜的次数加1
if(guessNum>num){
System.out.println("猜的数偏大!");
}
else if(guessNum System.out.println("猜的数偏小!"); } else { System.out.println("猜对了!共猜了"+times+"次!"); System.out.println("请选择:"); System.out.println("1:继续"); System.out.println("2:退出"); int choose=sc.nextInt(); switch(choose){ case 1: { num=rd.nextInt(10)+1;//重新差生一个1-10 的数 times=0;//猜数的次数清为0 break; } case 2: {//default: System.out.println("欢迎下次光临!"); break; } break; } } } } 输出的结果是: ================================== ==============猜数游戏============ ================================== 请输入一个整数: 5 猜的数偏小! 请输入一个整数: 8 猜的数偏小! 请输入一个整数: 9 猜对了!共猜了3次! 请选择: 1:继续 2:退出 2 欢迎下次光临! 三种语句结构: 顺序结构;选择结构(if,switch),循环结构(for,while,do…while)