三种格式:
1. if(条件表达式) 3. if(条件表达式)
{ {
执行语句; 执行语句;
} }
2. if(条件表达式) else if (条件表达式)
{ {
执行语句; 执行语句;
} }
else ……
{ else
执行语句; {
} 执行语句
}
if语句特点:
a,每一种格式都是单条语句。
b,第二种格式与三元运算符的区别:三元运算符运算
完要有值出现。好处是:可以写在其他表达式中。
c,条件表达式无论写成什么样子,只看最终的结构是
否是true 或者false;
例如:
int x = 3;
//if的三种表达方式
//第一种
if(x>1) ;//条件不满足{}内的不执行,控制{}内的语句
/* {
System.out.println("yes");
}
*/
System.out.println("yes");//这样写if执行第一条语句(这一条)
System.out.println("over");
/*
第二种 :if.....else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2 (三元运算付)
三元运算符:好处可以简化 if else代码 。弊端:因为是一个运算符,所以运算完毕必须要有一个结果。
*/
if(x>1)
{
System.out.println("over");
}
else
{
System.out.println("over"); //两层判断
}
//第三种 多层判断 也是单条语句 格式if else if else if....else(也是一个整体)
int n =3 ;
if(n>1)
System.out.println("a") ;
else if(n>2)
System.out.println("b") ;
else if(n>3)
System.out.println("c") ;
else
System.out.println("d") ;
if(n>1)
System.out.println("a") ;//这里是第一种
if(n>2)
System.out.println("b") ;//这里是第三种
else if(n>3)
System.out.println("c") ;
else
System.out.println("d") ;
System.out.println("over") ;
switch语句
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
a、switch语句选择的类型只有四种:byte,short,int ,char。
b、case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c、结束switch语句的两种情况:遇到break,执行到switch语句结束。
d、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
switch(x) //转换 读法:先读case ,在读default。读到break或者default 才停止
{
default: //注意有符号“:”
System.out.println("a");
//break; //先读的case 读完没有符合的选着读这个,读完输出结果a,没有遇到break 继续向下读
case 4 :
System.out.println("b");
//break; //读这个语句,由于上面的语句已经判断这个语句不在执行判断直接读出结果
case 6 :
System.out.println("c");
break; //这里遇到break跳出switch语句,switch语句执行完毕。 最后输出值为 a b c
case 2 :
System.out.println("d");
break;
case 5 :
System.out.println("e");
break;
/
*/
}
循环体至少被执行一次。
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:
a、for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行 循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
b、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用 的变量在循环结束后还可以继续使用。
c、最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件, 来控制循环。
break语句:应用范围:选择结构和循环结构。
continue语句:应用于循环结构。
注:
a、这两个语句离开应用范围,存在是没有意义的。
b、这个两个语句单独存在下面都不可以有语句,因为执行不到。
c、continue语句是结束本次循环继续下次循环。
d、标号的出现,可以让这两个语句作用于指定的范围。
2.思路:第一种:可以定义两个变量int m,n=1; m=7*n;m<=100 ;n++ 输出的m值为100里面满足条件的值 输出 的n 择为满足条件的个数
第二种:定义两个数int m=0, n; n%7==0 n<=100 n++ m++ 输出的n是满足条件的值 m是满足条件的个数
3.步骤:一、定义两个自变量n,m; 二、写循环函数 三、输出m n
*/
//for语句 用第一种来试验
/* int m=0 , n=1;
for ( ;m<=100 ;n++ ) //这样子输出的结果是105 16 *******记住for循环是怎样循环的*******
{
m=7*n;
}
System.out.println(m);
System.out.println(n);
//换种写法纠正错误
int m=0 , n=1;
for ( ;m<=(100-7) ;n++)
{
m=7*n ;
}
System.out.println(m);
System.out.println(n-1);
}
}
*/
/*
int m=0, n=1 ;
do
{
if(n%7==0)
{ System.out.println(n) ; //嵌套语句哦^^,,,
m++;
}
n++;
}
while (n<=100);
}
}
*/
//第三种:做个for嵌套语句
int m=0 ; //一定要注意这一点,不能写到for里面了
for (int n=1; n<=100; n++)
{
if(n%7==0)
{System.out.println(n);
m++ ;
}
}
System.out.println("m="+m) ;
}
}
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可 以省略不写。
注意:
• 函数中只能调用函数,不可以在函数内部定义函数。
• 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
• 明确要定义的功能最后的结果是什么?
• 明确在定义该功能的过程中,是否需要未知内容参与运算
{
public static void main(String[] args)
{
System.out.println(add(7,9));
//System.out.println(getMax(7,9));
// cFB(9) ;
//buoBianXing(9);
//System.out.println("Hello World!");
}
//定义函数:
//1、打印任意边的矩形
//2、打印任意大小的等边三角形
//3、打印任意的乘法表
/*
1.要求:打印任意边的矩形
2.分析:这是一个循环嵌套函数,这个函数有两个整数的未知数变量,要在循环函数里面打印,不返回具体值
3.步骤:1 建立函数 2 写循环函数代码 3 输入任意数值检验
*/
/*
* * * * *
* * * * *
* * * * *
* * * * *
*/
public static void duoBianXing(int m , int n )//设矩形长为m宽为n
{
for (int x=1;x<=n ;x++ )
{
for ( int y=1;y<=m ; y++)
{
System.out.print("* ") ;
}
System.out.println();
}
}
/*
1.要求:打印任意大小的等边三角形
2.分析:观察得到这是一个循环嵌套函数,且是两个循环嵌套函数共同执行这个函数有两个整数的未知数变量, 要在循环函数里面打印,不返回具体值
3.步骤:1 建立函数 2 写循环函数代码 3 输入任意数值检验
-----*
----* *
---* * *
- * * * *
public static void duoBianXing(int m )//设等边三角形底边长为m
{
for (int x=1;x<=m ;x++ )
{
for ( int y=x+1;y<=m ; y++)
{
System.out.print("-") ;
}
for ( int y=1;y<=x ; y++)
{
System.out.print("* ") ;
}
System.out.println();
}
}
/*
*/
public static void cFB(int n )//设我想得到到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();
}
}
//4、比较两个数大小
public static int getMax(int a, int b)
{
if(a>b)
return a;
else
return b;
// return (a>b)?a:b; 可以用三元函数书写
}
/*
2、重载的特点:与返回值类型无关,只看参数列表
3、重载的好处:方便于阅读,优化了程序设计。
*/
//重载示例:
//返回两个整数的和
static int add(int x,int y){return x+y;}
//返回三个整数的和
static int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
static double add(double x,double y){return x+y;}
}