数据类型
- 整数类型:byte,short,int,long //int比较常用
- 浮点数(小数)类型:float,double //一般用double
- 字符类型:char
- 布尔类型:boolean //值只有两个,ture或false
进制
5. 【B】二进制:顾名思义凡二进一,0,1,10,11,100,101,110,111,1000//0b+数字
6. 【O】八进制:凡八进一,0,1,2,3,4,5,6,7,10,11。。。。//0+数字
7. 【H】十六进制:凡十六进一,0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f、10.‘’‘’‘’‘’1a、、、、、 //0x加数字
8. 【D】十进制
字符转化成数字
- +0转化为数字,例如;name+0
- 字符前加(int)例如:((int)name)
数字转化为字符
- 前面加\u,例如:char a=’\u0500’
AWT在JDK中的目录
- 在jdk-jre-lib-rt.jar用360压缩打开
Windows窗口
- Frame:
- Dialog:
C笔记
printf四种输出方式
- (“字符串\n”);//【\n】表示换行
- (“输出控制符”,输出参数);
- (“输出控制符1 输出控制符2”,输出参数);
- (“输出控制符 非输出控制符”,输出参数);
输出控制符含义
- %d ----int
- %ld------ long int
- %c----char
- %f----float
- %lf------double
- %x(或%X或%#X)----int 或 long int 或 short int
- %o----同上
- %s-----字符串
scanf-s 两种用法
- scanf_s(“输入控制符”, 输入参数);
功能:将从键盘输入的字符转化为控制符所规定格式数据,然后存入以输入参数的值为地址的变量中。 - scanf_s(“非输入控制符 输入控制符” 输入参数);
功能:将从键盘输入的字符转化为控制符所规定格式数据,然后存入以输入参数的值为地址的变量中,非输入控制符必须原样输入。
如何使用scanf_s编写出高质量代码
3. 使用scanf_s之前最好先使用printf提示用户以什么样的方式输入。
4. scanf_s中尽量不要使用非输入控制符,尤其是不要用\n。
5. 应该编写代码对用户的非法输入做适当的处理 。
c // char ch ; while ((ch=getchar()) != '\n') continue;
除法与取模运算符
- 除法与运算结果和运算对象的数据类型有关,如果两个数都是int,则商就是int。若商有小数,则截取小数部分;被除数与除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不截取小数点部分。【16/5.0==3.2000】
- 取余%的运算对象必须是整数,结果是整除后的余数,其余数的符号与被除数相同
运算符
-
算术运算符
-, + , * , %(取余数) -
关系运算符
> , >= , < , <= , !=(不等于) , ==(等于) -
逻辑运算符
!(非) , &&(并且), ||(或)!真 -----假
!假 -----真真&&真----真
真&&假----假
假&&真----假
假&&假----假真||真----真
真||假----真
假||真----真
假||假----假【C语言对真假的处理】
非零是真
零是假真是1表示
假是0表示
&&左边的表达式为假 , 右边的表达式肯定不会执行
|| 左边的表达式为真 , 右边的表达式肯定不会执行 -
赋值运算符
= ,+=,*=,/=,-= , 例如:a+=3等价于a=a+3 -
优先级别:
算术>关系>逻辑>赋值
流程控制
- if最简单的用法
if (表达式)
输出语句 - if的范围问题
- if(表达式)
语句A;
语句B;
解释:if默认只能控制语句A的执行与不执行
if无法控制语句B执行或不执行
或者说:语句B一定执行 - if(表达式)
{
语句A;
语句B;
}
此时if可以控制语句A语句B
由此可见:if默认只能控制一个语句执行或不执行
如果想控制多个语句执行或不执行的话就要把这些语句用{}括起来
- if(表达式)
强制类型转化
- 格式:(数据类型)(表达式)
- 功能: 把表达式的值强行转化为前面数据类型的值
- 例子:(int)(6.0)最终值为6
(float)(5)最终值为5.000000
浮点数的存储所带来的问题
- float和double 都不能保证可以精确的存储一个小数
- 举例:
if (|x - 0.000001| <= 0.000001)
printf(“是零\n”);
else
printf(“不是零\n”);
循环中更新的变量不能定义为浮点型
进制转换
- 十进制转换为r进制
方法:除r取余,直至商为0,余数倒序排列。 - r进制转换为十进制
方法:相应数值乘r的n次方, 例如:16F—>F(15)+6*16+1*16²=367
关于while
- 执行顺序:
格式:
A;
while(B)
{sum;
C;} - 与for的相互比较
for和while可以相互转换
for(1,2,3)
A;
等价于
1;
while(2)
{
A;
3;
}
while和for可以相互转换,但for的逻辑性更强,更不容易出错,推荐多使用for。 - 举例
从键盘输入一个数字,如果该数字是回文数,则返回yes,否则返回no。
回文数:正着写和倒着写都一样。比如:121,12321。
- 什么时候用while,什么时候用for
没法说,到最后自然就懂了! - do…while与for的比较
格式:
do{
…
}while (表达式);
do…while 与for不等价,当然与while也不不等价。
**break和continue
- break:
break如果用于循环是来终止循环的。
break如果用于switch,则是用来终止switch的。
break不能直接用于if,除非if属于循环内部的一个子句。
例子:
for(i = 0; i < 3; ++i)
{
if (3>2)
break;//虽然break是if内部的语句,但break终止的却是外部for循环。
printf(“哈哈”);//永远不会输出。
}
break只能终止距离它最近的循环。 - continue:
用于跳过本次循环余下的语句,转去判断是否需要执行下一次循环。- 例子:
for(1,2,3)
{
A;
B;
continue;//如果执行该语句,则执行完该语句后,会执行3语句,C,D语句会被跳过。
C;
D;
}
2.while语句
while(1,2,3)
{
A;
B;
continue;//如果执行该语句,则执行完该语句后,会执行表达式,C,D语句会被跳过。
C;
D;
}//可以联想到之前收集垃圾字符的写法。
学习路线
【 C——》JavaSE——》SQL——》HTML——》Java Web】
- 例子:
数组
-
为什么需要数组
为了解决大量同类型数据的储存和使用问题
为了模拟现实世界 -
数组的分类
一维数组:
完全初始化
int a[5] = {1,2,3,4,5};
不完全初始化
int a[5] = {1,2,3};
不初始化, 所以元素都是垃圾值
int a[5];
清零
int a[5] = {0};二维数组
三维数组 -
多维数组是否存在?
不存在
因为内存是线性一维的
n维数组可以当做每个元素是n-1维数组的一维数组。
比如:
int a[3][4];
该数组是含有3个元素的一维数组
只不过每个元素都可以再分成4个小元素
int a[3][4][5];
该数组是含有3个元素的一维数组
只不过是每个元素都是4行5列的二维数组
【函数】{C语言第二大重点!}
一些单词的含义:【int】 表示函数返回的值是int类型。【void】括号中的void表示该函数不能接收数据,函数前的void表示该函数没有返回值 。【return】表示返回主调函数的值。
-
为什么需要函数
- 避免了重复性操作。
- 有利于程序的模块化。
-
什么是函数
- 逻辑上:能够完成独立功能的独立的代码块.
- 物理上:
能够接受数据[当然也可以不接收数据]。
能够对数据进行处理。
能够将数据处理的结果返回[当然也可以不返回任何值]。
总结:函数是一个工具,它是为了解决大量类似问题而设计的,函数可以当成一个黑匣子。
【过页!】