switch语句的格式?针对格式的解释?以及注意事项?
switch(表达式){
case 值1:
语句1;
break ;
case 值2:
语句2;
break;
case 值3:
语句3;
break;
......
default:
语句n+1;
break;
}
解释:
switch:当前是一个选择结构语句,它的作用和if语句是一样的。
case语句:后面的值和switch里面的表达式进行比较,如果相同,则进入到case语句中,执行case语句中的内容。
break:表示结束switch语句,即跳出switch语句。
default:和if语句中的else是一样的,如果case语句都不成立,则执行default中的语句。
注意事项:
switch语句后的表达式能够跟的类型有:byte,short,int,char
jdk5以后,可以跟枚举。
jdk7以后,可以跟String类型。
如果case语句中有break,则执行完后就跳出switch语句,如果case语句中没有break,则会继续向下运行,且不再进行比较,直至遇到break跳出switch语句或执行到语句末为止。
int x = 2,y=3;
switch(x)System.out.println("y="+y);
结果: y=5
根据输入的值,判断是星期几。(分别用if语句和switch语句实现)
if语句的代码如下:
package homework;
import java.util.Scanner;}
运行结果:
请输入一个数:
7
星期天
switch语句代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入一个数:");
int num=in.nextInt();
switch(num) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期天");
break;
}
}
}
运行结果:
请输入一个数:
2
星期二
九九乘法表
1)求和
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("用for循环求1~100之和");
int sum=0;
for(int i=1;i<=100;i++ ) {
sum+=i;
}
System.out.println("1~100之和为:"+sum);
}
}
运行结果如下:
用for循环求1~100之和
1~100之和为:5050
2)求偶数和
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {}
运行结果如下:
用for循环求1~100偶数之和
1~100偶数之和为:2550
3) 求奇数和
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("用for循环求1~100奇数之和");
int sum=0;
for(int i=1;i<=100;i++ ) {
if(i%2==1) {
sum+=i;
}
}
System.out.println("1~100奇数之和为:"+sum);
}
}
运行结果如下:
用for循环求1~100奇数之和
1~100奇数之和为:2500
打印水仙花数和统计水仙花数个数
代码如下:
package homework;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("打印三位数中的水仙花数:");
int a,b,c,num=0;
for(int i=100;i<=999;i++) {//234
a=i%10; //个位
b=i/10%10; //十位
c=i/100; //百位
if(i==a*a*a+b*b*b+c*c*c) {
System.out.println(i);
num++;
}
}
System.out.println("水仙花数的个数为:"+num);
}
}
运行结果如下:
打印三位数中的水仙花数:
153
370
371
407
水仙花数的个数为:4
九九乘法表
代码如下:
package homework;
public class HomeWork {
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+"\t");
System.out.println();
}
}
}
运行结果如下:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
break,continue和return分别有什么用?
break: 在循环语句中,如果程序运行到break语句则跳出循环体,执行循环后面的语句
continue:在循环语句中,如果程序运行到continue语句则跳过当次循环中剩余的语句,进行下一次循环。
return:当方法的返回值类型为void时则不使用return语句或者说不返回任何值,当方法的返回值不为空时,return
语句则返回其后面的表达式,表达式的类型和方法名前面的类型一致,将表达式的值返回给主调函数。
函数的概念?函数的格式?格式的解释说明
概念:具备特定共能的代码块,解决了重复性代码的问题,提高了程序的可读性个复用性。
格式:
方法的格式: 形式参数
public static 返回值类型 方法名(参数类型1 变量1,参数类型2 变量2....参数类型n 变量n){
函数体...
return ...
}
格式解释说明:
public static:函数是静态的,而且是公共的。
返回值类型:根据具体的需求来决定返回什么类型的数据。
方法名:给当前的代码块起名字,命名规则:如果是一个单词,则所有字母小写,如果多个单词,则第一个单词小写,从第二个单词开始,每个单词的首字母大写。
A:求两个数据之和
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static int add(int x,int y) {
int sum1=x+y;
return sum1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入两个数字:");
int a=in.nextInt();
int b=in.nextInt();
int sum=add(a,b);
System.out.println("两个数据之和为:"+sum);
}
}
运行结果如下:
请输入两个数字:
5
6
两个数据之和为:11
B:判断两个数据是否相等
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static boolean compare(int x,int y) {
return x==y;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入两个数字:");
int a=in.nextInt();
int b=in.nextInt();
boolean flag=compare(a,b);
if(flag)
System.out.println("这两个数字相等");
else
System.out.println("这两个数字不想相等");
}
}
运行结果如下:
请输入两个数字:
4 4
这两个数字相等
C:获取两个数中较大的值
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static int Max(int x,int y) {
int max=x>y?x:y;
return max;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入两个数字:");
int a=in.nextInt();
int b=in.nextInt();
int max=Max(a,b);
System.out.println("两个数字中较大的一个数字是:"+max);
}
}
运行结果如下:
请输入两个数字:
15 46
两个数字中较大的一个数字是:46
D:打印m行n列的星形矩形
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入星星矩阵的行数:");
int m=in.nextInt();
System.out.println("请输入星星矩阵的列数:");
int n=in.nextInt();
for(int i=0;i
}
System.out.println();
}
}
}
运行结果如下:
请输入星星矩阵的行数:
6
请输入星星矩阵的列数:
7
*******
*******
*******
*******
*******
E:打印nn乘法表
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入乘法表的阶数:");
int n=in.nextInt();
for(int i=1;i<=n;i++) {
for(int j=1;j<=i;j++) {
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
运行结果如下:
请输入乘法表的阶数:
8
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
short s = 1; s = s + 1;有没有问题?如果有怎么解决?
short s = 1; s += 1;有没有问题?如果有怎么解决?
第一个有问题,以为s为short类型,1为int类型,s=s+1先运行s+1,则编译器自动进行隐式类型转换(类型提升)将short类型转换为int类型,则s+1为int类型,然后将s+1赋值给s就是错误的,因为将int类型转换为short类型则要进行手动的强制类型转换(显式类型转换),而编译器不会自动进行。
第二个没有问题。因为"+="运算符在解析的时候等价于s=(short)(s+1)或者是s=(s的类型)s+1,进行了显式类型转换(强制类型转换),将int类型转换为short类型。
System.out.println("x="+x+",y="+y);
运行结果:x=2,y=1
第三题System.out.println("x="+x+",y="+y);
运行结果:x=7,y=2
第四题System.out.println("x="+x+",y="+y);
运行结果:x=7,y=1
编写代码实现如下内容:if语句实现
考试成绩分等级。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下 E等。
请根据给定成绩,输出对应的等级。
代码如下:
package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入成绩:");
int score=in.nextInt();
if(score>100)
System.out.println("输入有误!!!");
else if(score>=90)
System.out.println("A等");
else if(score>=80)
System.out.println("B等");
else if(score>=70)
System.out.println("C等");
else if(score>=60)
System.out.println("D等");
else System.out.println("E等");
}
}
运行结果如下:
请输入成绩:
55
E等
package homework;
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0,day=0;
while(sum<100) {
day++;
sum+=2.5;
if(day%5==0)
sum-=6;
}
System.out.println("经过"+day+"天小芳才可以存到100元");
}
}