JAVA自学笔记04
1、switch语句
1)格式:switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1
break;
}
2)注意事项:
表达式结果类型:byte/short/int/char/枚举/string
case 后只能跟常量表达式而不能接变量,不能接相同的常量表达式
default可以在任意位置,但它总是最后执行的
switch 语句是以break 语句为结束而不是default
@例题1:模拟做单项选择题。根据选择给出对应的答案
import java.util.Scanner;
class Test{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
char ch = (char)x;
switch(x){
case 'a':
System.out.println('a');
break;
case 'b':
System.out.println('b');
break;
case 'c':
System.out.println('c');
break;
case 'd':
System.out.println('d');
break;
default:
System.out.println("WRONG");
}
}
}
@例题2:键盘录入字符串,根据给定的字符串,来输出你选择的字符串是什么
(键盘导入字符串的方法是:String s = sc.nextLine();)
import java.util.Scanner;
class Test{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
switch(s){
case "Hello":
System.out.println("Hello");
break;
case "Bye":
System.out.println("Bye");
break;
}
}
}
3、循环结构
1)for 循环结构:
格式:for(初始化语句;判断语句;控制条件语句){
语句体
}
其中初始化语句只执行一次,可缺省
判断条件语句必须是布尔类型
循环体语句如果是一条语句可以不加大括号
@例题1:在控制台输出10次HelloWorld
class Test{
public static void main(String args[]){
int x = 1;
for(;x<=10;x++){
System.out.println("HelloWorld");
}
}
}
@例题2:在控制台输出数据1~10
class Test{
public static void main(String args[]){
int x = 1;
for(;x<=10;x++){
System.out.println(x);
}
}
}
@例题3:求出1~10的和
class Test{
public static void main(String args[]){
int sum = 0;
int x = 10;
for(;x>=0;x--){
sum+=x;
}
System.out.println(sum);
}
}
@例题3:求出1~100的偶数和
class Test{
public static void main(String args[]){
int sum = 0;
int x = 100;
for(;x>=0;x=x-=2){
sum+=x;
}
System.out.println(sum);
}
}
@例题4:在控制台输出所有三位的水仙花数,并统计其数目
class Test{
public static void main(String args[]){
int a=0,b=0,c=0;
int temp;
int sum;
int i = 0;
for(;a<=9;a++){
for(;b<=9;b++){
for(;c<=9;c++){
sum=a*100+b*10+c;
temp=a*a*a+b*b*b+c*c*c;
if(sum==temp){
System.out.println(sum);
i++;
}
}
c=0;
}
b=0;
}
System.out.println("共有"+i+"个三位的水仙花数");
}
}
@例题5:统计1~1000之间有多少个数:
同时满足:对3整除余2,对5整除余3。对7整除余2
class Test{
public static void main(String args[]){
int x=0;
int i=0;
for(;x<=1000;x++){
if(x%3==2&&x%5==3&&x%7==2){
System.out.println(x);
i++;
}
}
System.out.println("共"+i+"个");
}
}
2)while循环结构
格式:初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
与for的使用区别:
for循环适合针对一个范围判断操作,控制条件语句的那个变量在for循环结束后不能再使用但在while内可以,while适用于判断次数不明的操作。
@例题6:我国最高山峰是珠穆朗玛峰:8848m,现有一张足够大的纸,厚0.01m。请问:对折多少次可以超过珠穆朗玛峰的高度
class Test{
public static void main(String args[]){
double a=0.0001;
double height=8848.0;
int i = 0;
for(;a<height;){
i++;
a=a*2;
}
System.out.println("共"+i+"次");
}
}
3)do…while循环
格式:初始化语句;
do{
循环体语句;
控制条件语句;
}while(条件判断语句);
@例题7:输出四行五列的*图案
class Test{
public static void main(String args[]){
int x=1,y=1;
for(;y<=4;y++){
for(;x<=5;x++){
System.out.print("*");//不换行的屏幕输出
}
x=1;
System.out.print('\n');
}
}
}
@例题8:屏幕输出高为6底为6的直角三角形
class Test{
public static void main(String args[]){
int x=1;
int y=x;
for(;x<=6;x++){
for(;y<=x;y++){
System.out.print("*");
}
y=1;
System.out.println('\n');
}
}
}
@例题9:屏幕输出九九乘法表
class Test{
public static void main(String args[]){
int x=1;
int y=x;
for(;x<=9;x++){
for(;y<=x;y++){
int temp=x*y;
System.out.print(x+"*"+y+"="+temp+" ");
}
y=1;
System.out.print('\n');
}
}
}
4、break语句
1)使用在选择结构switch或循环语句中,离开使用场景是没有意义的。
2)跳出多层循环:带标签的语句:格式:
标签名:语句
break 标签名;
5、continue 语句
1)使用在循环结构中
2)跳出一次循环,执行下一次循环
6、return语句
常用于结束一个方法,即退出一个方法
@例题10:小芳存钱问题:小芳的妈妈每天都会给小芳2.5元钱,她都会存起来,但如果到了天数为5的倍数的时候,她会花掉6元,问小芳再低几天可以村存够100元钱?
class Test{
public static void main(String args[]){
double x=0;
int i=0;
for(;;){i++;
x+=2.5;
if(i%5==0){
x-=6;
}
if(x>=100){
break;
}
}
System.out.println(i);
}
}