基本语句结构
-
选择语句【重点】
-
循环语句【重点】
-
跳转语句【重点】
一、选择语句【重点】
-
1. if语句格式一
if(关系表达式){ 语句体 } 执行流程: A:先判断关系表达式的结果是true还是false B:如果是true,就执行语句体,否则不执行 //案例1:用整数1表示男,键盘录入一个整数,如果是1,就输出"我是男人,我要上男厕所" class IfDemo1{ public static void main(String[] args){ //键盘录入一个整数,使用Scanner对象 Scanner sc=new Scanner(System.in); System.out.println("1表示男,输入其他不管"); int num=sc.nextInt(); //对录入的整数num,进行判断是否等于1 if(num==1){ System.out.println("我是男人,我要上男厕所"); } } }
-
2. if语句格式二
if(关系表达式){ 语句体1; }else{ 语句体2; } 执行流程: A:先判断关系表达式的结果是true还是false B:如果是true,就执行语句体1,否则不执行语句体2 /* 案例2:用整数1表示男,键盘录入一个整数 如果输入1,就输出"我是男人,我要上男厕所"; 如果不是1,就输出"我是女人,我要上女厕所" */ class IfDemo2{ public static void main(String[] args){ //键盘录入一个整数,使用Scanner对象 Scanner sc=new Scanner(System.in); System.out.println("1表示男,输入其他不管"); int num=sc.nextInt(); //如果输入的是1 if(num==1){ //如果num等于1 System.out.println("我是男人,我要上男厕所"); }else{ //如果num不等于1 System.out.println("我是女人,我要上女厕所"); } } }
-
3. if语句格式三
if(关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体2; }else if(关系表达式3){ 语句体3; } ... else{ 语句体n+; } 执行流程: A:从上往下依次判断关系表达式的结果,是true还是false B:如果关系表达式的结果是false,就继续判断下一个关系表达式 只要有一个为true,就执行该处的语句体,整个if语句结束。 C:如果都不满足,就执行最后一个else的语句体 /* 案例3:用整数1表示男,整数2表示女人,其他整数表示人妖 键盘录入一个整数,如果输入1,就输出"我是男人,我要上男厕所"; 如果输入2,就输出"我是女人,我要上女厕所"; 不是1也不是2,就输出"我是人妖,男女厕所通吃" */ class IfDemo3{ public static void main(String[] args){ //键盘录入一个整数,使用Scanner对象 Scanner sc=new Scanner(System.in); System.out.println("1表示男,输入其他不管"); int num=sc.nextInt(); //如果输入的是1 if(num==1){ //如果num等于1 System.out.println("我是男人,我要上男厕所"); }else if(num==2){ //如果num等于2 System.out.println("我是女人,我要上女厕所"); }else{ //如果num不等于1,也不等于2 System.out.println("我是人妖,男女厕所通吃"); } } }
-
4. if语句的练习
//1)键盘录入两个整数,求两个数的最大值 import java.util.Scanner; public class IfTest1{ public static void main(String[] args){ //键盘录入两个整数 Scanner sc=new Scanner(System.in); //录入数据 System.out.println("请输入第一个整数:"); int a=sc.nextInt(); System.out.println("请输入第二个整数:"); int b=sc.nextInt(); int max=0;//max用于记录最大值 //比较a和b的大小,如果a比b大,大的值就是a,否则就是b if(a>b){ max=a; }else{ max=b; } System.out.println("a和b的最大值为:"+max); } } /* 2)键盘录入一个数,判断这个数是否为偶数还是奇数 如:输入8,输出8是偶数 输入7,输出7是奇数 */ public class IfTest2{ public static void main(String[] args){ //键盘录入两个整数 Scanner sc=new Scanner(System.in); //录入数据 System.out.println("请输入一个整数:"); int a=sc.nextInt(); if(a%2==0){ //如果a能被2整数,就输出a是偶数 System.out.println(a+"是偶数"); }else{ //如果a不能被2整数,就输出a是奇数 System.out.println(a+"是奇数"); } } }
-
二、switch语句【重点】
switch专门用于对几个固定的值进行匹配,如星期只有7天,月份只有12个
switch的格式: switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 举例:键盘录入一个月份,输出对应的季节 public class SwitchDemo1{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); System.out.println("键盘录入一个月份:"); int num=sc.nextInt(); //使用switch语句,对num的值进行匹配 switch(num){ case 1: case 2: case 12: System.out.println("冬季"); break; case 3: case 4: case 5: System.out.println("春季"); break; case 6: case 7: case 8: System.out.println("夏季"); break; case 9: case 10: case 11: System.out.println("秋季"); break; default: System.out.println("你输入的月份不对"); break; } } } switch的注意事项: 1)表达式的数据类型: byte short int char JDK1.5之后可以是枚举 JDK1.7之后可以是String 2)case的值只能是常量,不能是变量,也不能重复 3)default可以省略 4)break可以省略,但是会穿透 5)遇到break,switch语句结束
三、循环语句【重点】
-
1.for循环
格式: for(初始化语句;条件判断语句;控制条件语句){ 循环语句体; } 执行流程: A:执行初始化语句 B:判断条件是否为true 如果条件是true,就继续执行 如果条件为false,就结束for循环 C:执行循环语句体 D:控制条件语句 E:回到B步骤继续循环 举例1:在控制台上输出10个HelloWorld public class ForDemo1{ public static void main(String[] args){ //整数i,从0变化到9,每次递增1 for(int i=0;i<10;i++){ //每次循环,输出一个"HelloWorld" System.out.println("HelloWorld"); } } } 举例2:在控制台打印输出1~5和5~1之间的所有整数 public class ForDemo2{ public static void main(String[] args){ //打印输出1~5 for(int i=1;i<=5;i++){ System.out.println(i); } //打印输出5~1 for(int i=5;i>=1;i--){ System.out.println(i); } } }
-
2.for循环练习题
练习1: 在控制台打印输出1-10之间所有整数的和 /* 求和思想: 以后遇到任何求和的问题,都按照下面的思路来做 A:定义一个求和变量sum B:遍历所有需要求和的数据,和sum累加 举例:求1-10之间所有整数的和 */ public class ForTest2{ public static void main(String[] args){ //A:定义一个求和变量sum int sum=0; //B:遍历所有需要求和的数据,和sum累加 for(int i=1;i<=10;i++){ sum+=i; } System.out.pritnln("1-10之间的和为:"+sum); } } 练习2:在控制台上打印输出1-100之间偶数的和 /* A:定义一个求和变量sum B:遍历所有需要求和的数据,和sum累加 */ public class ForTest3{ public static void main(String[] args){ //A:定义一个求和变量sum int sum=0; //B:遍历所有需要求和的数据,和sum累加 //遍历1-100之间所有的数 for(int i=1;i<=100;i++){ //判断i是否是偶数,如果是,就和sum累加 if(i%2==0){ sum+=i; } } System.out.println("1-100之间偶数的和为:"+sum); System.out.println("------------------"); int sum2=0; //每次循环让i间隔2 for(int i=0;i<=100;i=i+2){ sum2+=i; } System.out.println("1-100之间偶数的和为:"+sum2); } } 练习3:打印输出所有的水仙花数,并统计个数 什么是水仙花数:是一个3位数,每一位数字的立方和等于该数本身。 举例:153=1*1*1+5*5*5+3*3*3 /* 统计思想: 所有求个数的问题,都按照下面的思路来做 A:定义一个计数器count B:如果满足条件count++ */ public class ForTest4{ public static void main(String[] args){ //定义计数器 int count=0; for(int i=100;i<=999;i++){ int ge=i%10; int shi=i/10%10; int bai=i/100%10; if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){ System.out.println(i); //满足条件count累加 count++; } } } }
-
2.while循环【重点】
格式 初始化语句; while(条件判断语句){ 语句体; 控制条件语句; } 举例:打印输出10个HelloWorld int i=1; while(i<=10){ System.out.println("HelloWorld"); i++; } 练习1:求1-100之间所有整数的和,用while改写 略 练习2:求1-100之间所有奇数的和,用while改写 int sum=0; int i=1; while(i<=100){ if(i%2==1){ sum+=i; } i++; } System.out.pritnln("---------------"); int sum=0; int i=1; while(i<=100){ sum+=i; i+=2; } 练习3:求所有水仙花数的个数,用while改写 /* 1)获取所有的三位数100-999 2)获取每一个三位数的个位,十位和百位 3)判断这个三位数是否满足水仙花数的条件,如果满足条件,计数器累加 */ class Test3{ public static void main(String[] args){ //定义计数器 int count=0; //初始值是100 int i=100; while(i<=999){ //获取每一个三位数的个位,十位和百位 int ge=i%10; int shi=i/10%10; int bai=i/100%10; //判断这个三位数是否满足水仙花数的条件,如果满足条件,计数器累加 if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){ count++; } i++; } System.out.println("水仙花数的个数为:"+count); } }
-
3.do...while循环
格式 初始化语句; do{ 语句体; 条件控制语句 }while(条件判断语句); 举例:打印输出10个HelloWorld int i=1; do{ System.out.println("HelloWorld"); i++; }while(i<=10);
-
4.三种循环的区别
do...while循环语句体,至少执行一次 for循环和while,满足条件才执行【实际开发用得较多】 如何选择? 一般情况,你知道循环的次数就是用for 不知道循环次数,就使用while循环
-
5.几种死循环【重点】
//不能结束的循环,叫做死循环,就下面几种形式 for(;;){ } while(true){ }
四、跳转语句【重点】
-
break的用法:
1)只能在switch和循环语句中使用 2)中断(跳出)单层循环 3)在循环嵌套中,break可以标号来跳出指定循环 for(int i=1;i<=10;i++){ if(i==5){ break;//当执行到i=5时,跳出循环(后面的i=6,7,8,9,10都不执行了) } System.out.println("HelloWorld"); }
-
xiaoming:for(int i =1;i<=10;i++){
-
wangcai:for(int j =1;j<=10;j++){
- if(j==5)
- break xiaoming;
-
}
-
-
continue的用法:
1)只能在循环语句中使用 2)结束本次循环,进入下一次循环
3)在循环嵌套中,continue可以标号来跳出指定当前循环进入下一层循环
for(int i=1;i<10;i++){ if(i%2==0){ continue;//结束本次循环,进入下一次循环 } System.out.println(i);//1 3 }