1.给定一个年份,判断是否是闰年
package li.xiao.feng2;
import java.util.*;public class leap_year
{
public static void main(String[] args)
{
int year;
Scanner input=new Scanner(System.in);
System.out.print("please enter the year :");
year=input.nextInt();
if(year%400==0||(year%4==0&&year%100!=0))
{
System.out.println(year+" is "+"leap year!");
}
else
System.out.println(year+" is not "+"leap year!");
}
}
2.公鸡5元一只,母鸡3元一只,3只小鸡1元,
如果用100元钱,买100只鸡,不佘不欠,可以买公鸡,母鸡,小鸡,各多少只。
package li.xiao.feng2;
import java.util.Scanner;
public class for_for_for {
public static void main(String[] args) {
int i,j,k,sum;
Scanner input=new Scanner(System.in);
for(i=0;i<=20;i++)
for(j=0;j<=33;j++)
for(k=0;k<=300;k++)
{
sum=0;
if((i*5+j*3+k*1==100)&&(k%3==0))
{
sum=i+j+k;
System.out.print("可以买的鸡的总数为:"+sum);
System.out.println(" 买公鸡,母鸡,小鸡的数量各为:"+i+", "+j+", "+k+"只");
}
}
input.close();
}
}
3.求如果指定基数为2,次数为5, 则求2+22+222+2222+22222的值;
第1项:2*0+2
第2项:2*10+2
第3项: 前一项*10+2;
package li.xiao.feng2;
import java.util.*;
public class basic_number
{
public static void main(String[] args)
{
int basic,num,i,j,flag=1,sum=0,item;
Scanner input=new Scanner(System.in);
while(flag==1)
{
sum=0;
System.out.print("请输入基数和次数:");
basic=input.nextInt();
num=input.nextInt();
while(num<=0||basic<=0)
{
System.out.print(" 次数或基数输入错误,请重新输入");
basic=input.nextInt();
num=input.nextInt();
}
item=0;
for(i=1;i<=num;i++)
{
item=item*10+basic;
sum=sum+item;
}
for(i=1;i<=num;i++)
{
for(j=0;j<i;j++)
{
System.out.print(basic);
}
if(i!=num)
System.out.print(" + ");
}
System.out.println(" = "+sum);
System.out.println("继续请按1,退出请按0");
flag=input.nextInt();
}
input.close();
}
}
总结11-25和26号两天学习的知识和技术
一:DOS命令:
1.切换目录:
cd /d 目标目录
2.编译java源代码
javac -d . java源文件名称
3.运行.class文件(字节码文件)
java 包.class类名
二:数据类型的转换:
1.自动转型:小范围数据转换成大范围的数据
大范围数据类型 变量名=小范围数据类型的值;
eg: long x=5;
2.强制转型:大范围数据类型转换成小范围数据类型
小范围数据类型 变量名=(小范围数据类型)大范围数据类型的值;
eg: int a=(int)5L;
3.Java语言的整型常量默认为int。
4.Java浮点型常量默认为double型,如要声明一个变量为float型,则需在数字后面加f或F
5.boolean 类型不能转换成任何其它数据类型
三:易混淆运算符:
1. 自增运算符:++
易混淆的点:a++ 先保存旧值,再自增,用旧值参加运算
++a 直接自增,用自增后的值参加运算
2. 短路与&& 如果前面的判断结果为false,则后面的判断不再执行。
非短路与& 每一个判断逻辑都要执行
3. 短路或|| 如果前面的判断结果为true,则后面的判断不再执行。
非短路或 | 每一个判断逻辑都要执行
四:位运算符:
在计算机中数字的运算都是按照“补码”的形式运算的。
正数的原码、反码、补码是相同的;
负数的反码是其原码的除了符号位以外的二进制位取反。
负数的补码是反码加1。
符号位是最左边的那个二进制位,0代表正数,1代表负数。
按位与:& 两个二进制位都为1,结果才为1;其余情况结果为0;
按位或:| 只要有一个二进制位为1,结果就为1;两个二进制位都为0,则结果为0;
按位异或:^ 相同的两个二进制位结果为0,不同的二进制位结果为1。
按位取反:~ 0变1,1变0.
右移: >> 右移后,左边的二进制位用符号位来补,正数补0,负数补1
左移: << 左移后,右边的二进制位用0来补。
无符号右移:>>> 右移后,左边的二进制位用0来补。
五:三目运算符:
结果返回boolean值的表达式?"结果为true时内容":"结果为false时内容"
六: switch语句有关规则
表达式的返回值必须是下述几种类型之一:
int, byte, char, short,String,enum;
case子句中的取值必须是常量,且所有case子句中的取值应是不同的;
default子句是可选的;
break语句用来在执行完一个case分支后使程序跳出switch语句块;