Jav学习笔记二之内置数据类型和三种循环

1.内置数据类型的学习

Java中的数据类型分为两种:一种是基本数据类型(也叫内置数据类型),另一种是引用类型。Java中的内置数据类型有8种,分别是byteshortintlongfloatdoublecharboolean

byte:字节类型,占一个字节的存储空间,数据范围是-128~127

short:短整型,双字节,占两个字节的存储空间,数据范围是[-327678,32767]。

int:整型,是最基本的数据类型,占4个字节的存储空间,数据范围是[-2^31,2^31-1]。

long:长整型,占8个字节的存储空间,是所用整型数据中占内存最多的。

对于以上四种数据类型,无论哪一种,都有一个特点,通过整型变量存取数据都是精确的,不会出现误差。还有一点,整数间的任何运算,其结果仍是整数。

实数类型有两种:单精度的float和双精度的double,这类数据类型的存取都是不准确的。在Java中控制实数的精度(即小数点位数)是这样的一种格式:

System.out.printf("%10.5f",value);——>保留5位小数。

 char:字符类型,java中的字符类型属于双字节类型,即一个字符由两个字节来保存,它的编码表是Unicode编码,属于双字节编码。对于一个字符来说,处理要考虑其编码值,其编码值从065535,即65536个字符,其中包含了大量的汉字。汉字的Unicode编码范围为:’\u4e00’-‘\u9fa5’。对于字符类型,可以用编码值对其赋值。对字符进行强制转换成int型可以知道其Unicode编码值。

egchar  ch1 = 65;char  ch2 ='B';char  ch3 = '';syso((int)',');//结果为44

转义字符的应用:

回车:'\r' (之前不知道这个字符具体有什么用,测试一下)

作用是'\r'使得光标重新回到这一行的开头,如果后面有要输出的内容,会把之前这一行的内容进行覆盖。

换行:'\n';单引号:'\'';双引号:'\"';制位表:'\t';(表示间隔一定的制位符输出)字符串表示回车换行:"\r\n"

boolean:布尔类型,只有两个值:falsetrue,分别用来表示真和假的两种状态。

eg

int x = 10;
int y =10;
boolean b= x>y &(x=y++) >5;
System.out.println(x+','+y);   //结果为65 
System.out.println("x,y:"+x+','+y);  //结果为x,y:10,11
//比较
boolean b = x>y && (x = y ++)> 5;  //第二个表达式未进行运算
System.out.println(x+','+y);   //结果为64
System.out.println("x,y:"+x+','+y); //结果为x,y:10,10

比较&&&的区别:

&&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符的两边的表达式都为true时,整个结果才为true,否则只要有一个为false,结果为false

&&还具有一个短路功能,即如果第一个表达式为false,则不再计算第二个表达式的。就像上述例子一样。当&操作符两边的表达式不是boolean类型,&表示按位与操作。

System.out.println(x+','+y);','字符相当于转化成起Unicode值与xy进行了加法运算啦。','字符的Unicode值为44.

2.三种循环

1)while循环

While循环中将计数器定义赋值,循环条件判断,计数器的增减,三个表达式不在同一位置声明定义。与while有关的循环特点基本是循环次数不确定(次数是固定的,但是不知道)。

While循环退出的情况分为两种:从while后面的括号中退出;从循环体中退出。

从循环体中退出通常设计为恒真循环。

eg

while(true){
sum += start;
start ++;
if(start>end){
break;//break关键字主要用在循环中,用于退出当前层循环
}
}
System.out.println("1+2+3+...."+ end + " = " + sum);

2)do-while循环

int sum = 0;
int start = 1;
do{
//执行循环体
sum += start++;
}while(start<=100);
System.out.println("sum: "+sum);
对于while do-while ,只有一个区别, while 循环可能一次也不执行,而 do-while 至少执行一次。对于 do-while 循环来说,它至少执行一次,再来进行判断。即使第一次判断条件就为假,循环也执行了一次循环。

3)for循环

for循环中将计数器定义赋值,循环条件判断,计数器的增减,三个表达式在同一位置声明定义。与for有关的循环特点基本是循环次数是确定的。

egfor(int i = 0;i<=n ; i++)

常规for循环的执行过程:

当计数器初始化(只一次)之后,利用循环条件判断表达式进行判断,如果为真,则执行循环体中的代码,执行完之后,进入计数器的增加部分,再到判断表达式中进行判断,为真,继续执行,如为假,循环结束。依次周而复始。

3.几个典型例子的说明

1定义两个整数,分别用来表示行数和列数,用while循环,用字符*打印出来一个矩形。

*****************

*****************

*****************

*****************

用两个while循环控制外层和内层

    private static void PrintRectangle(int m,int n){
     int i = 0; //控制行
     int j = 0; //控制列
     while(i <= m)
     {  
        j=0; //关键:每次循环一行之后,j都是从零开始
        while(j <= n)
        {
        System.out.print("*");
        j++;
        }
        System.out.println();
        i++;
      }
    }
2 用while循环来解决一下“斐波那契数列”问题。

已知有两个值,f0=0,f1=1;之后每个后面的值都等于前两个值之和。前面的若干个数为:

0,1,1,2,3,5,8,13,21,…..要求输出前40项。

private static void PrintFun2(){  // 斐波那契数列问题
      int f0 = 0;
      int f1 = 1;
      int times = 19;
      int time = 1;
      System.out.printf("%-10d",f0); //调用C语言的输出格式,控制间距
      System.out.printf("%-10d",f1);
      while(time <= times){
       System.out.printf("%-10d",f0);
       System.out.printf("%-10d",f1);
       f0 = f0+f1;
       f1 = f0+f1;
       time++;
       }
    }
3 打印乘法口诀。

a) 打印原始的乘法口诀

b) 打印没有重复值的乘法口诀

private static void PrintAllMultiplication(){ //完整的乘法口诀
    { 
int x = 1, y = 1; 
while (x <= 9) 
{     
    y=1;
while (y <= 9) 
{ 
System.out.print(x+"*"+y+"="+x * y+"\t"); //注意要使用\t制位符进行间距的控制。
y++; 
} 
System.out.print("\n"); 
x++; 
} 
} 
    }
    private static void PrintMultiplication(){ //无重复乘法口诀表
    { 
int x = 1; 
// int y=1;变量的可见范围(生命周期)
while (x <= 9) 
{ 
int y = 1;  
while (y <= x) 
{ 
System.out.print(x+"*"+y+"="+x * y+"  "); 
y++; 
} 
System.out.print("\n"); 
x++; 
} 
} 
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值