一、选择结构
if结构
结构
if(布尔表达式){
语句块
}
建议if语句都写上{},没有{}则只作用与后面第一条语句
/**
* 测试if单分支结构
* 掷骰子游戏
* 三次加起来大于15则手气不错
*/
package demo;
public class Demo15 {
public static void main(String[] args) {
double rand = Math.random ()*6;
int a = ((int)rand)+1;//这是int的强制转化,小数点后直接舍弃
//int rand = (int)(Math.random ()*6)+1;或者可以这样写
int b = ((int)rand)+1;
int c = ((int)rand)+1;
if (a+b+c>=15){
System.out.println ("手气不错" );
}
else if(a+b+c>=10&&a+b+c<15){
System.out.println ("继续努力" );
}
else{
System.out.println ("你别玩了");
}
System.out.println (a+b+c );
}
}
与c语言类似,就不多加以说明了,需要注意的是,在多分支语句中,最后需要用一个else来包含所有情况,这和verilog很类似
switch结构
注意
switch会根据表达式的值从相匹配的case标签开始执行,一直执行到break处或者是switch的末尾,如果表达式的值与任一case值不匹配,则进入default语句
package demo;
public class Demo16 {
public static void main(String[] args) {
double a = Math.random ()*4;
int grade = (int)a + 1;
switch (grade){// 和if的搞混了,这个只要写个值就好了,不需要写布尔表达式
case 1:
System.out.println ("大一,好好学" );
break;
case 2: //把冒号写成了分号
System.out.println ("大二,做项目" );
break;
case 3:
System.out.println ("大三,找实习" );
break;
default:
System.out.println ("大四,开摆!" );
break;
}
}
}
笔者在编写代码的时候遇到的一些问题,都以注释的形式标注到了代码当中,望读者引以为戒
二. 循环结构
while循环
注意
需要避免让循环走入死循环
/**
* 这是一个测试while的简单程序
*/
package demo;
public class Demo17 {
public static void main(String[] args) {
int i=0; // 笔者忘记给它赋值了
while (i<3) {//笔者起初忘记了加中括号,导致程序报错了
System.out.println ("im the king of the world");
i++;//运行结果,打印三次 im the king of the world
}
}
}
累加程序
/**
* 这是一个测试while的累加程序
*/
package demo;
public class Demo17 {
public static void main(String[] args) {
int i=0;
int a=0;
while (i<100) {
i=i+1;
a=a+i;//忘记了+=怎么用了,就直接这样了
}
System.out.println (a );//要放到循环外面,输出结果为5050;
}
}
for循环
/**
* 这是一个测试for循环的简单程序
*/
package demo;
public class Demo18 {
public static void main(String[] args) {
int i;//刚开始的时候又忘记初始化变量了,我服了
for (i=0;i<3;i++){
System.out.println ("baozi" );
}
}
}
/**
* 这是一个测试for循环的累加程序
*/
package demo;
public class Demo18 {
public static void main(String[] args) {
int i;
int sum = 0;
for (i=0;i<=100;i++){ // 因为先执行里面的判断,再执行语句,所以需要n+1次;这个需要好好注意
sum = sum+i;
}
System.out.println (sum );
}
}
额外补充,换行符
/**
* 这是一个测试换行符程序
*/
package demo;
public class Demo18 {
public static void main(String[] args) {
int j;
for (j=9;j>=1;j--) {
System.out.println (j+"\t");//换行是"\t"."\n"是隔一行换
}
}
}
do-while循环
不重要,不过多的去掌握了
加粗样式
break和continue语句标签
1.break是强行退出整个循环
2.continue是用于结束本轮循环
/**
* 测试break语句
* 产生100以内的随机数,直到随机数为88为止
*/
package demo;
public class Demo19 {
public static void main(String[] args) {
while (true){
double a = Math.random ()*100;
int b = (int)a + 1;
System.out.println (b );
if (b == 88){
break;
}
}
}
}
/**
* 测试continue语句
* 把100~150之间不能被3整除的数输出,并且每行输出5个;
*/
package demo;
public class Demo20 {
public static void main(String[] args) {
int i=100;
int count=0;
while (i<=150){
i++;
if(i%3==0){
continue;//不执行下面的语句,执行上面的.
}
System.out.print ( i+" ");
count++;
if(count%5==0){
System.out.println ( ); //每行输出5个,这个其实笔者没有理解的特别到位
count=0;
}
}
}
}
三.方法
类似与c语言中的函数
返回值类型指的是数据类型,例如int double…
好多概念,但基本上都符合c语言的形式,笔者认为可以不用去死记硬背,应用即可
/**
* 这是一个方法的测试程序
*/
package demo;
public class Demo21 {
public static void main(String[] args) {
love ();
love ();
love ();
love ();
add(3,4,5);
}
public static void love(){
System.out.println ("love you" );
}
public static int add(int a,int b,int c){
int sum=0;
sum=a+b+c;
System.out.println ( sum);
return sum;// 两个作用:返回值;结束方法运行
}
}
四:递归
package demo;
public class Demo22 {
public static void main(String[] args) {
int number = 5;
int result = calculateFactorial(number);
System.out.println("阶乘结果为: " + result);
}
public static int calculateFactorial(int n) {
// 基准情况:当 n 等于 0 或 1 时,阶乘结果为 1
if (n == 0 || n == 1) {
return 1;
}
// 递归情况:将问题拆分为更小的子问题,并通过递归调用计算阶乘
return n * calculateFactorial(n - 1);
}
}
关于递归笔者理解的不是很透彻,就不过多阐述
五:面向对象
整个的概念会很多,需要好好理解!笔者新开一个章节吧!
总结
本文笔者主要讲了一下选择结构,循环结构,方法,递归这些基本语法,不难发现,这些语法和c语言有异曲同工之妙.因为笔者之前有过c语言相关方面的学习.所以理解起来不会很困难,读者要是没有相关经验,则需好好的整理本文笔者所给出的一些代码,需要多敲一敲,所谓看十遍不如敲一遍!
望诸君与笔者共勉