package java5;
import java.util.Scanner;
public class Test {
/**
* 1. if-else if-else:多分支
* 语法:
* if(条件判断){
*
* }else if(条件判断){
*
* }else if(条件判断){
*
* }.....
* else{
* }
*
* 注意:如果有一个分支成立则后面的分支不会继续执行。
* 2.if语句的嵌套:
* if语句中可以继续嵌套if和else语句,并且可以嵌套很多层。
* 注意:1.进行嵌套的时候一套注意代码格式。
* 2.在写一些比较复杂的嵌套的时候,尽量借助于逻辑运算符进行条件的合并和简化。
* 3.进行嵌套的时候最多的嵌套不要超过三层。
* 3.三元运算符:
* 语法:条件表达式?条件成立的代码:条件不成立的代码;
* 执行过程:当条件表达式返回true,则执行“:”前面的内容,否则,执行“:”后面的内容。
* 注意:1.在进行一些复杂的分支语句的时候不建议使用三元运算符,因为提高了
* 程序的阅读难度。
* 2.条件表达式的结果必须是boolean类型的数据。
* 4.switch-case:多分支
* 语法:switch(变量){
* case 值:
* 代码;
* break;
* case 值:
* 代码;
* break;
* case 值:
* 代码;
* break;
* .....
* default:
* break;
* }
*
* 注意:1.switch中的变量数据类型:byte,short,int,char,String(JDK1.6之后),枚举
* 2.如果case分支结束没有break语句则会继续执行下面的分支语句(不会再判断case的值),直到遇到break关键字结束。
* 3.case后面的值必须要和变量的数据类型一致。
* 4.变量和case后面的值做相等运算,所以switch不能实现大于小于该类判断。
* 三.循环结构:
* 1.while:
* 语法:
* while(判断条件){
* //循环体
* }
* 伪代码:
* 当(判断条件){
* //判断条件成立执行的代码。
* }
* 执行过程:
* 1.判断循环条件是否为true。
* 2.如果循环条件为true,则执行循环体。
* 3.执行完循环体继续判断条件是否为true,依次循环。
* 4.如果条件为false,则循环结束。
* 注意:1.while循环体的最少执行次数为0次
* 2.当while条件永远为true的时候,该循环就变成了死循环。
* 2.do-while:
* 3.for:
*
*
*
*
*
*
*
*/
public static void main(String[] args) {
//计算1到100的和
//定义变量存放和
int sum=0;
//定义一个循环变量
int i=0;
/*i++;
sum=sum+i;
i++;
sum=sum+i;*/
while(i<100) {
i++;
sum=sum+i;
}
System.out.println("1-100的和为:"+sum);
//两个数比较大小
if(2>3) {
System.out.println("2>3");
}else {
System.out.println("2<3");
}
String str=2>3?"2>3":"2<3";
System.out.println(str);
int x=3;
int y=4;
switch (x) {
case 2:
x=y--;
break;
case 3:
x=x++ + --y; //x=6 y=3
case 4:
y=--x +x++; //x=6 y=10
case 5:
y++; //x=6 y= 11
break;
default:
--x;
break;
}
System.out.println(x+"----"+y);
//根据用户输入的季节输出对应的月份
//创建Scanner对象
Scanner scanner=new Scanner(System.in);
//提醒用户输入
/*System.out.print("请输入一个季节:");
//接受用户输入
String season=scanner.next();
//判断季节输出对应的月份
switch (season) {
case "春天":
System.out.println("10月,11月,12月");
//break;
case "夏天":
System.out.println("1月,2月,3月");
//break;
case "秋天":
System.out.println("4月,5月,6月");
//break;
case "冬天":
System.out.println("7月,8月,9月");
//break;
default:
System.out.println("输入有误!");
//break;
}*/
/*if(season.equals("春天")) {
System.out.println("1月,2月,3月");
}else if(season.equals("夏天")) {
System.out.println("4月,5月,6月");
}else if(season.equals("秋天")) {
System.out.println("7月,8月,9月");
}else if(season.equals("冬天")) {
}else {
System.out.println("输入有误!");
}*/
}
}
作业:
1.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
package demo1;
import java.util.Scanner;
public class Demo3 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入这个月的利润:"); double lirong=scanner.nextDouble(); double jiangjin=0; if(lirong<=100000){ jiangjin=lirong*0.1; System.out.println("奖金总数为:"+jiangjin); }else if(lirong>100000&&lirong <=200000){ jiangjin=100000*0.1+(lirong-100000)*0.075; System.out.println("奖金总数为:"+jiangjin); }else if(lirong>200000&&lirong<=400000 ){ jiangjin =100000*0.1+100000*0.075+(lirong-200000); System.out.println("奖金总数为:"+jiangjin); }else if (lirong >400000&&lirong <=600000) { jiangjin=100000*0.1+100000*0.075+200000*0.05+(lirong-400000)*0.03; System.out.println("奖金总数为:"+jiangjin); }else if(lirong >600000&&lirong<=1000000){ jiangjin=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(lirong-600000)*0.015; System.out.println("奖金总数为:"+jiangjin); }else if (lirong>1000000) { jiangjin=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(jiangjin-1000000)*0.01; System.out.println("奖金总数为:"+jiangjin);
}
}
}
|
2.计算1000之内能被3整除的数的和.
package demo1;
public class Demo4 { public static void main(String[] args) { int i=0; int sum=0; while(i<1000){ i=i+1; if(i%3==0){ sum=sum+i; }
} System.out.println("1000以内能被3整除的数的和为:"+sum); }
} |
3.用户输入年、月、日三个数据,判断这一天是当年的第几天,注意闰年的2月是29天,其他的是是28天。
package demo1;
import java.util.Scanner;
public class Demo5 { public static void main(String[] args) {
Scanner scanner=new Scanner(System.in); System.out.print("请输入所要查询年份:"); int year=scanner.nextInt(); System.out.print("请输入月份:"); int month=scanner.nextInt(); System.out.print("请输入日:"); int day=scanner.nextInt(); int sum=0; switch (month) {
case 12: sum=sum+30; case 11: sum=sum+31; case 10: sum=sum+30; case 9: sum=sum+31; case 8: sum=sum+31; case 7: sum=sum+30; case 6: sum=sum+31; case 5: sum=sum+30; case 4: sum=sum+31; case 3: if(year%4==0&&year%100!=0||year%400==0){ sum=sum+29; }else{ sum=sum+28; } case 2: sum=sum+31;
case 1: sum=sum+0; break; default: System.out.println("输入错误,请重新输入月份!"); break; } sum=sum+day; System.out.println(year+"年"+month+"月"+day+"日"+"是这年的第"+sum+"天");
}
}
|
4.打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。.
package demo1;
import java.util.Scanner;
public class Demo8 { public static void main(String[] args) { //Scanner scanner=new Scanner(System.in); //System.out.println("请输入一个三位数字:"); //int shu=scanner.nextInt(); int baiwei; int shiwei; int gewei; int i=100;
while (i<=999) { i=i+1; baiwei=i/100%10;
shiwei=i/10%10; gewei=i%10; int a=baiwei*baiwei*baiwei+shiwei*shiwei*shiwei+gewei*gewei*gewei;
if(a==i){
System.out.println(i+"是水仙花!"); }
} }
}
|
5. 请输入一个数字,计算该数的阶乘。
例如:!5 =5*4*3*2*1;
package demo1;
import java.util.Scanner;
public class Demo6 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入一个数字:"); int shu=scanner.nextInt(); int i=0; int c=1; while (i<shu) { i=i+1; c=c*i; } System.out.println(shu+"的阶乘为:"+c); }
} |
6.(选做题)古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,输入一个月份,求当月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
|