续写
if-else语句可以相互嵌套
switch-case语句结构:
switch (表达式) {
case 常量1: {
执行语句1;
break;
}
case 常量2:{
执行语句2;
break;
}
……
default://相当于else,可以没有default。
执行语句n;
break;
}
如果switch-case语句没有break的话,不会跳出switch语句会一直执行到最后。
switch-case语句结构中,表达式只能有一下六种类型:byte、short、int、char、String、枚举类型。case后面只能是常量,不能是一个范围。
说明:凡是可以用switch-case的一定可以用if-else。
练习:
import java.util.Scanner;
/*练习:从键盘上读入一个学生的成绩,存放在变量score中,根据score的值
* 输出其对应的成绩等级:
* score>=90 A
* 70(取)~90 B
* 60(取)~70 C
* 小于60 D
*/
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int score = input.nextInt();
int num = score/10;
switch (num) {
case 10:
case 9: {
System.out.println("A");
break;
}
case 8:
case 7:{
System.out.println("B");
break;
}
case 6:{
System.out.println("C");
break;
}
default:
System.out.println("D");
break;
}
}
}
3、循环结构
在某些条件满足下,反复执行特定代码的功能。
循环语句的四个组成部分 :
a.初始化部分 b.迭代部分 c.循环条件部分 d.循环体部分
for循环
for循环的结构: for(a;c;b){
d;
}
while循环
while循环的结构: a
while(c){
d;
b;
}
do-while循环结构
do-while循环结构: a
do{
d;
b;
}while(c);
do-while循环至少会执行一次循环。
例题://记录输入的正负数的个数,当输入为0时结束。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int pnum = 0,nnum = 0;
while(true) { //相当于for(;;)
int num = sc.nextInt();
if (num>0) {
pnum++;
}else if (num<0) {
nnum++;
}else {
break;
}
}
System.out.println("输入的正数个数为:"+pnum);
System.out.println("输入的负数个数为:"+nnum);
}
}
嵌套循环
例题1://输出4行“******”
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<4;i++) {
for(int j=0;j<6;j++) {
System.out.print('*');
}
System.out.println();
}
}
}
例题2:输出
*
**
***
****
*****
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=4;i>=0;i--) {
for(int j=i;j<5;j++) {
System.out.print('*');
}
System.out.println();
}
}
}
例题3:九九乘法表
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print("i*j="+(i*j)+" ");
}
System.out.println();
}
}
}
关键词break和continue
break:用于switch-case,循环语句中。 结束当前循环。默认跳出最近的一层循环,带了标签的break则跳出标签循环。
continue:用于循环语句中。 结束档次循环。同理。
两者后面均不能加执行语句。
Scanner类:从键盘获取不同类型的变量
实现步骤:
1、导包:import java.util.Scanner;
2、Scanner的实例化:Scanner sc = new Scanner(System.in);//创建Scanner对象。
3、调用Scanner类的相关方法,来获取指定类型的变量。(常用)
int num = sc.nextInt();
String str = sc.next();
String str1 = sc.nextLine();//可输入空格
char ch = sc.next().charAt(0);//获取索引为0的字符
double d = sc.nextDouble();
boolean b1 = sc.nextBoolean();