1:switch语句的格式?针对格式的解释?以及注意事项?
/**
* //作业1:switch语句的格式?针对格式的解释?以及注意事项?
* switch语句的格式:
* switch(表达式){
* case 值1:
* 语句1;
* break;
* case 值2:
* 语句2;
* break;
* case 值3:
* 语句3;
* break;
* ...
* default:
* 语句n+1;
* break;
* }
* 格式解释:
* case语句中的值1和表达式的值比较,如果一致,执行语句1
* 如果不一致,case语句中的值2和表达式的值比较,如果一致,执行语句2
* ......
* 如果都不一致,执行default中的语句
* switch:当前是一个选择结构语句,它的作用和if语句是一样
* case语句:它后面的值是和表达式进行比较
* break:表示结束当前switch语句
* default:是和if语句中的else意识时候一样的,如果条件都不成立,执行default中的语句
* 注意事项:
* switch语句后面的表达式:能跟的类型:byte,short,int,char
* jdk5以后,可以跟枚举
* jdk7以后,可以String类型
* 1)case语句的后面只能跟常量(根据具体的需求),不能跟变量! javascript中的case后面是可以跟变量并且还可以表达式
* 2)default语句可以在switch语句中的任何位置,不影响代码执行,如果是在语句中,那么break最好带上
* 3)建议把break带上,否则会造成一个现象:case穿透!
* 4)switch语句的结束条件:
* 1)语句break语句结束
* 2)执行默认执行到末尾语句结束
* 5)case语句的后面是冒号,表示和switch语句中的表达式进行比较
* @author Shinelon
*
*/
2:看程序,分析下面程序的结果:
/** * 2:看程序,分析下面程序的结果: int x = 2,y=3; switch(x) { default: y++; case 3: y++; break; case 4: y++; } System.out.println("y="+y); 结果:y=5 分析:switch语句中的x与case的值3比较不一致,switch语句中的x继续与case的值4比较不一致,执行default语句:y++此时y=4, 因为没有break语句所以继续执行,执行到第一个case时y=5,此时后边有break语句,所以switch语句结束.
3:根据输入的值,判断是星期几。(分别用if语句和switch语句实现)
输入:1
输出:星期1package zuoye; /** * 3:根据输入的值,判断是星期几。(分别用if语句和switch语句实现) 输入:1 输出:星期1 */ import java.util.Scanner; public class HomeWork03 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请您输入一个数据"); int a = sc.nextInt(); switch(a) { 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; default: System.out.println("您输入的数据有误"); } System.out.println("-----------------------------------------------"); System.out.println("请您输入一个数据"); int b = sc.nextInt(); if(b==1) { System.out.println("星期一"); }else if(b==2){ System.out.println("星期二"); }else if(b==3){ System.out.println("星期三"); }else if(b==4){ System.out.println("星期四"); }else if(b==5){ System.out.println("星期五"); }else if(b==6){ System.out.println("星期六"); }else if(b==7){ System.out.println("星期日"); }else { System.out.println("您输入的数据有误"); } } }
4:for循环的格式?要能看懂执行流程。
用for循环完成如下案例
求和
求偶数和
求奇数和
打印水仙花数
统计水仙花数
package zuoye;
/**
*
* 4:for循环的格式?要能看懂执行流程。
用for循环完成如下案例
求和
求偶数和
求奇数和
打印水仙花数
统计水仙花数
* @author Shinelon
*
*/
public class HomeWork04 {
/**
* for循环的格式:
* for(初始化语句;条件语句;步长语句){
* 循环语句体;
* }
* 执行流程:
* 初始化语句:给当前变量进行赋值,如果满足条件语句,那么执行循环体语句
* 执行步长语句,对变量进行自增或自减---->在对条件语句进行判断,如果满足条件,再次执行循环体---->步长语句
* 直到不满足条件为止,循环语句结束...
*/
public static void main(String[] args) {
//求和1`100
int sum = 0;
for(int a = 1;a <= 100;a++) {
sum+= a;
}
System.out.println("1`100的和为:"+sum);
System.out.println("---------------------------------------------");
//求1`100的偶数和
int sum1 = 0;
for(int b = 1;b <= 100 ;b++) {
if(b%2==0) {
sum1 += b;
}
}
System.out.println("1`100的偶数和为:"+sum1);
System.out.println("---------------------------------------------");
//求1`100的奇数和
int sum2 = 0;
for(int c = 1;c <= 100 ;c++) {
if(c%2==1) {
sum2 += c;
}
}
System.out.println("1`100的偶数和为:"+sum2);
System.out.println("---------------------------------------------");
//打印水仙花数
for(int d = 100;d < 1000;d++) {
int ge = d%10;
int shi = d/10%10;
int bai = d/10/10%10;
if(d==ge*ge*ge+shi*shi*shi+bai*bai*bai) {
System.out.println("水仙花数为:"+d);
}
}
System.out.println("---------------------------------------------");
//统计水仙花数
int sum3 = 0;
for(int d = 100;d < 1000;d++) {
int ge = d%10;
int shi = d/10%10;
int bai = d/10/10%10;
if(d==ge*ge*ge+shi*shi*shi+bai*bai*bai) {
sum3++;
}
}
System.out.println("水仙花数个数为:"+sum3);
System.out.println("---------------------------------------------");
//九九乘法表
for(int e = 1;e <=9;e++) {
for(int f = 1 ; f <=e ; f++) {
System.out.print(e+"*"+f+"="+(e*f)+"\t");
}
System.out.println();
}
}
}
5:break,continue和return分别有什么用?
//5:break,continue和return分别有什么用?
/**
* break:表示中断,结束的意思,结束语句,不能单独使用,一般在switch语句,或者循环语句中使用
* continue:继续的意思,跳出当前循环,直接进入下一次循环,不能单独使用,在循环语句中使用多
* retrun :方法的返回值 ,会带回一个结果
*
* @author Shinelon
*
*/
6:函数的概念?函数的格式?格式的解释说明
/**
* 方法:完成特定功能的代码块
* 方法的格式:
* public static 返回值 方法名(参数类型1 变量1,参数类型2 变量名){
* return ...
* }
* 方法格式的解释:
* public static:方法是静态的,并且是公共的方法 (今天写方法,public static)
* 返回值(数据类型): 根据具体的需求,返回什么类型,用什么样的数据类型结束
* 方法名:给当前代码块起名字,命名规则:单个单词:字母全小写 多个单词:第一个单词全部小写,第二个单词开始每个单词首字母大写
* return: 将当前代码的计算的结果,返回给调用者
* @author Shinelon
*
*/
将当前代码的计算的结果,返回给调用者
* @author Shinelon
*
*/
7:函数的练习:
A:求两个数据之和
B:判断两个数据是否相等
C:获取两个数中较大的值
D:打印m行n列的星形矩形
E:打印nn乘法表
package zuoye;
import java.util.Scanner;
/**
* 7:函数的练习:
A:求两个数据之和
B:判断两个数据是否相等
C:获取两个数中较大的值
D:打印m行n列的星形矩形
E:打印nn乘法表
* @author Shinelon
*
*/
public class HomeWork07 {
public static void main(String[] args) {
//D:打印m行n列的星形矩形
Scanner sc = new Scanner(System.in) ;
System.out.println("----------------------------");
System.out.println("请输入第一个数据:");
int a = sc.nextInt() ;
System.out.println("请输入第二个数据:");
int b = sc.nextInt() ;
//A求两个数据之和
int result = sum(a,b);
System.out.println("求和结果为:"+result);
//B:判断两个数据是否相等
System.out.println("----------------------------");
boolean flag = compare(a,b);
System.out.println("flag:"+flag);
//C:获取两个数中较大的值
System.out.println("----------------------------");
int max =max(a,b);
System.out.println("两个数据中较大的值为:"+max);
System.out.println("----------------------------");
//D:打印m行n列的星形矩形
System.out.println("请输入一个行数:");
int m = sc.nextInt() ;
System.out.println("请输入一个列数:");
int n = sc.nextInt() ;
print(m,n) ;
System.out.println("----------------------------");
//E:打印nn乘法表
System.out.println("请输入一个数据(1<=n<=9):");
int n1 = sc.nextInt() ;
nN(n1);
}
//A求两个数据之和方法
public static int sum(int a,int b) {
return a+b;
}
//B:判断两个数据是否相等方法
public static boolean compare(int a,int b){
if(a==b) {
return true;
}else {
return false;
}
}
//C:获取两个数中较大的值方法
public static int max(int a,int b) {
return a>b? a:b;
}
//D:打印m行n列的星形矩形方法
public static void print(int a,int b) {
for(int m = 0 ; m < a ; m ++) {
for(int n = 0 ; n < b ; n++) {
System.out.print("*");
}
System.out.println();
}
}
//E:打印nn乘法表方法
public static void nN(int n) {
for(int x = 1 ; x <= n ; x ++) {
for(int y = 1 ;y <=x ; y ++) {
System.out.print(y+"*"+x+"="+(y*x)+"\t");
}
System.out.println();
}
}
}
import java.util.Scanner;
/**
* 7:函数的练习:
A:求两个数据之和
B:判断两个数据是否相等
C:获取两个数中较大的值
D:打印m行n列的星形矩形
E:打印nn乘法表
* @author Shinelon
*
*/
public class HomeWork07 {
public static void main(String[] args) {
//D:打印m行n列的星形矩形
Scanner sc = new Scanner(System.in) ;
System.out.println("----------------------------");
System.out.println("请输入第一个数据:");
int a = sc.nextInt() ;
System.out.println("请输入第二个数据:");
int b = sc.nextInt() ;
//A求两个数据之和
int result = sum(a,b);
System.out.println("求和结果为:"+result);
//B:判断两个数据是否相等
System.out.println("----------------------------");
boolean flag = compare(a,b);
System.out.println("flag:"+flag);
//C:获取两个数中较大的值
System.out.println("----------------------------");
int max =max(a,b);
System.out.println("两个数据中较大的值为:"+max);
System.out.println("----------------------------");
//D:打印m行n列的星形矩形
System.out.println("请输入一个行数:");
int m = sc.nextInt() ;
System.out.println("请输入一个列数:");
int n = sc.nextInt() ;
print(m,n) ;
System.out.println("----------------------------");
//E:打印nn乘法表
System.out.println("请输入一个数据(1<=n<=9):");
int n1 = sc.nextInt() ;
nN(n1);
}
//A求两个数据之和方法
public static int sum(int a,int b) {
return a+b;
}
//B:判断两个数据是否相等方法
public static boolean compare(int a,int b){
if(a==b) {
return true;
}else {
return false;
}
}
//C:获取两个数中较大的值方法
public static int max(int a,int b) {
return a>b? a:b;
}
//D:打印m行n列的星形矩形方法
public static void print(int a,int b) {
for(int m = 0 ; m < a ; m ++) {
for(int n = 0 ; n < b ; n++) {
System.out.print("*");
}
System.out.println();
}
}
//E:打印nn乘法表方法
public static void nN(int n) {
for(int x = 1 ; x <= n ; x ++) {
for(int y = 1 ;y <=x ; y ++) {
System.out.print(y+"*"+x+"="+(y*x)+"\t");
}
System.out.println();
}
}
}
8:short s = 1; s = s + 1;有没有问题?如果有怎么解决?
short s = 1; s += 1;有没有问题?如果有怎么解决?
/**
* short s = 1; s = s + 1;有没有问题?如果有怎么解决?
* 答:有问题,在"s = s + 1;"中默认类型提升为int,不能用short接收int类型的数据
* 解决方案:强制类型转换:将"s = s + 1;"转换为"s = (short)(s + 1);"
short s = 1; s += 1;有没有问题?如果有怎么解决?
答:没问题
* @author Shinelon
*
*/
9:第一题
int x = 1,y = 1;
if(x++==2 & ++y==2) {
x =7;
}
System.out.println("x="+x+",y="+y);
第二题
int x = 1,y = 1;
if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
第三题
int x = 1,y = 1;
if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
第四题
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
答案
package zuoye;
/**
* 第一题
* int x = 1,y = 1;
if(x++==2 & ++y==2) {
x =7;
}
System.out.println("x="+x+",y="+y);
结果:x=2,y=2
分析:if语句中表达式x++==2不成立,所以if语句不执行,此时x=2,y=2直接输出
*第二题
* int x = 1,y = 1;
if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
结果:x=2,y=1
分析:if语句中表达式x++==2不成立,又因为运算符为&&导致右边不执行,同时if语句也不执行,此时x=2,y=1直接输出
*第三题
* int x = 1,y = 1;
if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
结果:x=7,y=2
分析:if语句中表达式x++==1成立,执行if语句,此时x=7,y=2
*第四题
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
结果:x=7,y=1
分析:if语句中表达式x++==1成立,又因为运算符为||导致右边不执行,执行if语句,此时x=7,y=1
* @author Shinelon
*
*/
10:编写代码实现如下内容:if语句实现
考试成绩分等级。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下 E等。
请根据给定成绩,输出对应的等级。
package zuoye;
import java.util.Scanner;
/**
* 10:编写代码实现如下内容:if语句实现
考试成绩分等级。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下 E等。
* @author Shinelon
*
*/
public class HomeWork10 {
public static void main(String[] args) {
while(true) {
Scanner sc = new Scanner(System.in) ;
System.out.println("请输入学生成绩:");
int a = sc.nextInt() ;
if(a >= 90 && a <=100) {
System.out.println("考试成绩为A等");
}else if(a>=80 && a<90) {
System.out.println("考试成绩为B等");
}else if(a>=70 && a<79) {
System.out.println("考试成绩为C等");
}else if(a>=60 && a<69) {
System.out.println("考试成绩为D等");
}else if(a>=0 && a<60) {
System.out.println("考试成绩为E等");
}else {
System.out.println("您输入的成绩有误");
}
}
}
}
11:编程题 需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
请问,经过多少天,小芳才可以存到100元钱。
package zuoye;
/**
* 11:编程题 需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
请问,经过多少天,小芳才可以存到100元钱。
* @author Shinelon
*
*/
public class HomeWork11 {
public static void main(String[] args) {
int day = 0;
int money = 0 ;
int end = 1000 ;
while(money<end) {
day++;
if(day%5==0) {
money -= 60;
}
money += 25;
}
System.out.println("经过"+day+"天存到100元");
}
}