目录
2.1 分支结构
2.1.1 if
代码格式:
注意:if(条件){},()后不能跟“;”否则{}中的代码将不受if的控制了。
案例1:键盘录入考试成绩,根据成绩所在的区间,程序打印出不同的奖励机制
package four;
import java.util.Scanner;
public class divnumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入分数:");
int grade = sc.nextInt();
if (grade>80) {
System.out.println("优");
}else if (grade>=60 && grade<=80) {System.out.println("良");}
else {System.out.println("差");}
}
}
案例2:密码校验
package four;
import java.util.Scanner;
public class divnumber {
public static void main(String[] args) {
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户密码:");
int mima = sc.nextInt();
if (mima==11111) {
System.out.println("登陆成功");
break;
}
else {System.out.println("登陆失败请重新输入!");}
}
}
}
结果:
2.1.2 switch分支
是通过比较值来决定执行那条分支
1、先执行表达式的值,再拿着这个值去与case后的值进行匹配。
2、与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。
3、 如果全部case后的值与之匹配都是false,则执行default块的代码。
注意:if常用于区间比较,而switch常用于单值比较
import java.util.Scanner;
public class demo3 {
public static void main(String[] args){
System.out.println("你最喜欢吃的水果是哪个?"); //输出语句
System.out.println("A.橙子"); //输出语句
System.out.println("B.苹果"); //输出语句
System.out.println("C.香蕉"); //输出语句
System.out.println("D.桃子"); //输出语句
Scanner sc = new Scanner(System.in); //创建Scanner对象
System.out.println("请输入你的选择:"); //输出语句
String choice= sc.nextLine(); //调用输入字符串的方法,获取键盘输入值
//switch语句
switch(choice){
case "A":
System.out.println("你的选择是橙子");
break;
case "B":
System.out.println("你的选择是苹果");
break;
case "C":
System.out.println("你的选择是香蕉");
break;
case "D":
System.out.println("你的选择是桃子");
break;
default:
System.out.println("请输入正确的选项!");
break;
}
注意:若表达式是String类型,case后面的值要用双引号" ";
若表达式是char类型,case后面的值用单引号' '。!!
2.2 循环结构
2.2.1 for 循环
循环格式:
for (初始化语句; 循环条件; 迭代语句)
{ 循环体语句(重复执行的代码); }
循环顺序:
执行流程:
执行的流程:
1、循环一开始,执行int i = 0 一次。
2、此时 i=0 ,接着计算机执行循环条件语句:0 < 3 返回true , 计算机就进到循环体中执行,输出 :helloWorld ,然后执行迭代语句i++。
3、此时 i=1 ,接着计算机执行循环条件语句:1 < 3 返回true , 计算机就进到循环体中执行,输出 :helloWorld ,然后执行迭代语句i++。
4、此时 i=2 ,接着计算机执行循环条件语句:2 < 3 返回true , 计算机就进到循环体中执行,输出 :helloWorld ,然后执行迭代语句i++。
5、此时 i=3 ,然后判断循环条件:3 < 3 返回false, 循环立即结束!!
判断成功就进循环
案例1: 批量生产数据
package four;
public class number {
public static void main(String[] args) {
for (int i=1;i<=100;i++) { //一定要注意循环条件,不要漏了!
System.out.println(i);
}
// TODO Auto-generated method stub
}
}
案例2: 求和
//求1-5之间的数据和,并把求和结果在控制台输出。
package four;
public class number {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=5;i++) {
sum = sum+i;
}
System.out.println(sum);
}
}
案例3:求奇数和
package four;
public class number {
public static void main(String[] args) {
int sum = 0;
int i ;
for (i=1;i<=10;i++) {
if (i%2==1 ) {sum=sum+i; }
}
System.out.println(sum);
}
}
案例4:水仙花数
需求:在控制台输出所有的“水仙花数”,水仙花数必须满足如下2个要求:
水仙花数是一个三位数 水仙花数的个位、十位、百位的数字立方和等于原数
package four;
public class number {
public static void main(String[] args) {
int i;
for (i=100;i<=999;i++) {
int m_3 = 0; //第三位数
m_3 = i/100;
int m_2 = (i/10)%10;
int m_1 = i%10;
if (m_1*m_1*m_1+m_2*m_2*m_2 +m_3*m_3*m_3 == i) {
System.out.println(i);
}
// else {System.out.println("匹配失败");}
}
}
}
2.2.2 While 循环
执行语句:
初始化语句; while (循环条件)
{ 循环体语句(被重复执行的代码);
迭代语句; }
注意:顺序执行。知道循环几次:使用for;不知道循环几次建议使用:while。
案例1:纸张折叠成珠穆朗玛峰的高度
世界最高山峰珠穆朗玛峰高度是:8848.86米=8848860毫米,假如我有一张足够大的纸,它的厚度是0.1毫米。请问:该纸张折叠多少次,可以折成珠穆朗玛峰的高度?
package four;
public class number {
public static void main(String[] args) {
double high = 8848860;
double count = 0;
double sump = 0.1;
while(sump<8848860) {
count++;
sump = sump*2;
}
System.out.println("用"+count+"次可以叠成珠穆朗玛峰的高度");
}
}
2.2.3 do-while 循环
执行语句:
初始化语句;
do { 循环体语句;
迭代语句; } while (循环条件);
特点:先执行后判断。
案例1:输出3遍HelloWorld
package four;
public class number {
public static void main(String[] args) {
int i=0;
do{
System.out.println("HelloWorld");
i++;
}while(i<3);
}}
注:在for 循环中同样是输出三次Helloworld 但是判断条件是i<=3
2.2.4 死循环(不干预不停,用于服务器程序)
2.2.5 嵌套循环
package four;
public class number {
public static void main(String[] args) {
for (int i =0;i<2;i++) {
for (int j =0 ;j <5;j++) {
System.out.println("我爱你");
}
}
}}
2.3 跳转关键字break、continue
break、continue
break : 跳出并结束当前所在循环的执行。
continue: 用于跳出当前循环的当次执行,直接进入循环的下一次执行。