大数据之路day02_2--if switch while for

为君一笑 提交于 2019-12-03 14:57:39

在这一节,学习程序流程控制,具体包括判断结构、选择结构、循环结构。

1、判断结构(if、if-else)

 

三元运算符和if-else的区别

三元运算符,是一个运算符,所以运行必须有结果 而if-else语句,只控制流程,所以不一定有结果 某些情况下,可以把if-else改写为三元运算符的形式 前提是要保证if-else执行完有具体的结果出现

例子1:输入对应的数字,选择输出对应的结果

 1 package day01;
 2 
 3 import java.util.Scanner;
 4 
 5 public class translate {
 6 
 7     public static void main(String[] args) {
 8         int num = 0;
 9         // TODO Auto-generated method stub
10         System.out.println("请输入1-5当中的数字:");
11         Scanner sc = new Scanner(System.in);
12         int i=sc.nextInt();
13         if(i == 1) {
14             System.out.println("该用户输入"+i+"对应的单词是Apple");
15         }else if(i == 2) {
16             System.out.println("该用户输入"+i+"对应的单词是banana");
17         }else if(i == 3) {
18             System.out.println("该用户输入"+i+"对应的单词是pear");
19         }else if(i == 4) {
20             System.out.println("该用户输入"+i+"对应的单词是peach");
21         }else if(i == 5) {
22             System.out.println("该用户输入"+i+"对应的单词是orange");
23         }
24 
25     }
26 
27 }

例子2:进行if的嵌套

 1 package homework;
 2 
 3 import java.util.Scanner;
 4 
 5 public class exer8 {
 6     public static void main(String[] args) {
 7         Scanner sc = new Scanner(System.in);
 8         System.out.println("请输入是否是会员: 是(y)/否(n)");
 9         String i = sc.next();
10         System.out.println("测试");
11         if(i.equals("y")) {
12             System.out.println("请输入购物金额:");
13             float money = sc.nextFloat();
14             if(money>200) {
15                 System.out.println("实际支付:" + (float)(money*(0.75)));
16             }else {
17                 System.out.println("实际支付:" + (float)(money*(0.8)));
18             }
19         }else if(i.equals("n")){
20             System.out.println("请输入购物金额:");
21             float money = sc.nextFloat();
22             System.out.println("实际支付:" + (float)(money*(0.9)));
23         }
24         
25 
26     }
27 
28 }

2、选择结构(switch)

 

 

 

switch语句特点: a,switch语句选择的类型在jdk1.6只支持四种:byte,short,int , char。jdk1.7以后支持String类型的。 b,case之间与default没有顺序。先执行第一个case,没有匹配的case最后再执行default。 c,结束switch语句的两种情况:遇到break,执行到switch语句结束。 d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

例子1:实现计算器

 1 package day02;
 2 
 3 import java.util.Scanner;
 4 
 5 public class switch01 {
 6     
 7     public static void main(String[] args) {
 8         
 9         // 计算器
10         int result = 0;
11         System.out.println("输入第一个数:");
12         Scanner sc = new Scanner(System.in);
13         int num1=sc.nextInt();
14         
15         System.out.println("选择加减乘除:(1加  2减 3乘 4除)");
16         int choice=sc.nextInt();
17         switch(choice) {
18         case 1:
19             System.out.println("输入第二个数:");
20             int num2=sc.nextInt();
21             result = num1+num2;
22             System.out.println("得到的结果为:"+result);
23             break;
24         case 2:
25             System.out.println("输入第二个数:");
26             int num3=sc.nextInt();
27             result = num1-num3;
28             System.out.println("得到的结果为:"+result);
29             break;
30         case 3:
31             System.out.println("输入第二个数:");
32             int num4=sc.nextInt();
33             result = num1*num4;
34             System.out.println("得到的结果为:"+result);
35             break;
36         case 4:
37             System.out.println("输入第二个数:");
38             int num5=sc.nextInt();
39             result = num1/num5;
40             System.out.println("得到的结果为:%s"+result);
41             break;
42         default:break;
43         }
44         
45 
46     }
47 
48 }

例子2:实现星期的翻译

 1 package day02;
 2 
 3 import java.util.Scanner;
 4 
 5 public class week {
 6 
 7     public static void main(String[] args) {
 8         int num = 0;
 9         // TODO Auto-generated method stub
10         System.out.println("请输入1-7当中的数字:");
11         Scanner sc = new Scanner(System.in);
12         int i=sc.nextInt();
13         switch(i) {
14         case 1:
15             System.out.println("今天是星期一");
16             break;
17         case 2:
18             System.out.println("今天是星期二");
19             break;
20         case 3:
21             System.out.println("今天是星期三");
22             break;
23         case 4:
24             System.out.println("今天是星期四");
25             break;
26         case 5:
27             System.out.println("今天是星期五");
28             break;
29         case 6:
30             System.out.println("今天是星期六");
31             break;
32         case 7:
33             System.out.println("今天是星期七");
34             break;
35         default:break;
36         
37         }
38 
39     }
40 
41 }

3、循环结构(while,do-while,for) 

 

 

 

do while特点是条件无论是否满足, 循环体至少被执行一次。

 

定义循环要注意 1:定义循环的条件 2:控制循环执行的次数 while里面的表达式可以用true,这样的话这个循环就是一个死循环了,会一直执行。

格式: for(初始化表达式;循环条件表达式;循环后的操作表达式) {

  执行语句;

  (循环体)

}

注:

a:for里面的几个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复这个过程,直到条件不满足为止。

b:while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。

c:最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

 

例子1:for循环 实现99乘法表

 1 package day02;
 2 
 3 public class jiujiu {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         int result;
 8         for(int i=1;i<10;i++) {
 9             for(int j=1;j<=i;j++) {
10                 result = i*j;
11                 System.out.print(j+"*"+i+"="+result+"\t");                
12             }
13             System.out.println();
14         }
15 
16     }
17 
18 }

例子2: while循环  实现判断多少年后,学员达到1000000

 1 package homework;
 2 
 3 public class exer2 {
 4 
 5     public static void main(String[] args) {
 6         int year = 2012;
 7         double student = 250000;
 8         while(student <= 1000000) {
 9             student = student * (1 + 0.25);
10             year++;
11         }
12         System.out.println("到"+ year +"年培训学员人数将达到1000000");
13 
14     }
15 
16 }

4、其他控制流程语句

break(跳出), continue(继续)

break语句:应用范围:选择结构和循环结构。 跳出当前循环

continue语句:应用于循环结构。 结束本次循环,继续下次循环

注:

a:这两个语句离开应用范围,存在是没有意义的。

b:这两个语句单独存在下面都不可以有语句,因为执行不到。

c:continue语句是结束本次循环继续下次循环。

d:花括号的出现,可以让这两个语句作用于指定的范围。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!