Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C语言——C/分支和循环

C语言——C/分支和循环

作者头像
用户11015888
发布于 2024-03-11 11:25:51
发布于 2024-03-11 11:25:51
24300
代码可运行
举报
文章被收录于专栏:csdncsdn
运行总次数:0
代码可运行

前言

C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。 我们可以使⽤ if 、 switch 实现分支结构,使用 for 、 while 、 do while 实现循环结构

一、 if语句(分支)

1.1语法形式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 if(判断表达式)
    语句

表达式成⽴(为),则语句执⾏,表达式不成⽴(为),则语句不执行; 在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不是0,则语句执⾏。 例:输⼊⼀个整数,判断是否为奇数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 2 == 1)
		printf("%d 是奇数\n", num);
	return 0;
}

1.2 else

如果⼀个数不是奇数,那就是偶数了,如果任意⼀个整数,我们该如何表示呢? 这⾥就需要 if ... else ... 语句了,语法形式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 if ( 表达式 )
     语句1
 else
     语句2

例:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印数偶数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 2 == 1)
		printf("%d 是奇数\n", num);
	else
		printf("%d 是奇数\n",num);
	return 0;
}

1.3 分支中包含多条语句

默认在 if 和 else 语句中默认都只控制⼀条语句,那如果我们要if语句同时控制2条语句,怎么办呢?那就要使⽤ { } 将代码括起来else 后也可以跟上大括号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age >= 18) //if 后使⽤{} 控制多条语句-这个块也叫:程序块,或者复合语句
	{
		printf("可以交女朋友了\n");
	}
	else //else 后使⽤{}控制多条语句-这个块也叫:程序块,或者复合语句
	{
		printf("未成年\n");
		printf("不可以早恋哦\n");
	}
	return 0;
}

1.4 嵌套 if

在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。 ⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num == 0)
		printf("输入的数字是0\n");
	else if (num > 0) //这⾥的if 相当于嵌套在else语句中,形成了嵌套结构
		printf("输入的数字是正数\n");
	else
		printf("输入的数字是负数\n");
	return 0;
}

1.5 悬空else问题

如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。

例:

如果单纯看代码就会判断出a 是0,不等于1,那就执⾏ else 语句,打印 haha 但是当你去运⾏代码,输出的结果是:啥都不输出,这就是悬空 else 的问题。因为当第一个 if 为假下一个if 就不会进入,所以不会打印出内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("hehe\n");
	}
	else
	{
		printf("haha\n");
	}
	return 0;
}

打印出:haha

只要带上适当的大括号,代码的逻辑就会更加的清晰,其中的可读性就会高!

二、关系操作符

C语言用于比较的表达式,称为“关系表达式”,里面使用的运算符就称为“关系运算符”,主要有下面6个。 • > 大于运算符 • < 小于运算符 • >= 大于等于运算符 • <= 小于等于运算符 • == 相等运算符 • != 不相等运算符

注意:

1、相等运算符 == 与赋值运算符 = 是两个不一样的运算符;

2、多个关系运算符不宜连用;

3、最好把变量写在等号的右边。

关系表达式通常返回 0 或 1 ,表⽰真假。C语⾔中, 0 表⽰假,所有⾮零值表⽰真。⽐如, 20 > 12 返回 1 , 12 > 20 返回 0 ,关系表达式常⽤于 if 或 while 结构。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (x == 3) {
	printf("x is 3.\n");
}

三、条件操作符

条件操作符也叫三目操作符,需要接受三个操作数。(C中唯一一个三目操作符)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 exp1 ? exp2 : exp3

条件操作符的计算逻辑是:

如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;

如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	if (a > 5)
		b = 3;
	else
		b = -3;
	printf("%d\n", b);
	return 0;
}

改造后

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	b = a > 5 ? 3 : -3;
	printf("%d\n", b);
	return 0;
}

练习:使用条件表达式实现找两个数中较大值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int m = a > b ? a : b;
	printf("%d\n", m);
	return 0;
}

四、逻辑操作符

逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式,主要有下⾯三个运算符: • ! :逻辑取反运算符(改变单个表达式的真假)!必须在表达式前; • && :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假); • || :或运算符,就是或者的意思(两侧至少有⼀个表达式为真,则为真,否则为假)。

1、逻辑取反运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
   int flag = 0;
   if(!flag)//!必须在表达式前
   {
         printf("do something\n");
    }
   return 0;
}

2、与运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int month = 0;
scanf("%d", &month);
if (month >= 3 && month <= 5)
{
	printf("春季\n");
}

3、或运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int month = 0;
scanf("%d", &month);
if (month == 12 || month == 1 || month == 2)
{
	printf("冬季\n");
}

4、练习:闰年的判断

闰年判断的规则: 1. 能被4整除并且不能被100整除是闰年; 2. 能被400整除是闰年。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

//代码1
int main()
{
	int year = 0;
	scanf("%d", &year);
	if (year % 4 == 0 && year % 100 != 0)
		printf("是闰年\n");
	else if (year % 400 == 0)
		printf("是闰年\n");
	return 0;
}



//代码2
int main()
{
	int year = 0;
	scanf("%d", &year);
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
		printf("是闰年\n");
	return 0;
}

5、短路

C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值再对右边的表达式求值,这个顺序是保证的。如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if(month >= 3 && month <= 5)

表达式中&&的左操作数是month >= 3 右操作数是 month <= 5 ,当左操作数 month >= 3 的结果是0的时候,即使不判断 month <= 5 ,整个表达式的结果也是0(不是春季)。所以,对于&&操作符来说,左边操作数的结果是0的时候,右边操作数就不再执⾏。

练习

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;//2335
	//i = a++||++b||d++; 1334
	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
	return 0;
}

求输出结果

五、switch 语句(分支)

1、语法形式

switch 语句是⼀种特殊形式的 if... else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易用、可读性更好的形式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
switch (整型表达式/枚举类型)字符也行因为其A码的储存形式为数字
 {
  case (常量1: 
  break;(跳出循环)//有无取决于代码是否需要跳出

  case (常量2: 
  break;(跳出循环)

  default: (执行另一条语句)

 }

#注:1、 switch语句中表达式的类型只能是:整形和枚举类型(特殊的常量);2、case 后必须是整型常量表达式且必须有空格。

:输⼊任意⼀个整数值,计算除3之后的余数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int n = 0;
	scanf("%d", &n);
	switch (n % 3)
	{
	case 0:
		printf("整除,余数为0\n");
		break;
	case 1:
		printf("余数是1\n");
		break;
	case 2:
		printf("余数是2\n");
		break;
	}
	return 0;
}

#注:1. case 与后边的数字之间必须有空格;2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句,否则会继续执行下一条 case 语句。

if 与 switch的对比

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	if (n % 3 == 0)
		printf("整除,余数为0\n");
	else if (n % 3 == 1)
		printf("余数是1\n");
	else
		printf("余数是2\n");
	return 0;
}

2、 switch 语句中的 default

在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊default 。

就⽐如前⾯做的打印星期的练习,如果 day 的输⼊不是1~7的值,如果我们要提⽰:输⼊错误,则可以这样完成代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int a = 0;
	scanf("%d", &a);
		switch (a)
		{
		case 1:
			printf("星期一\n");
			break;
		case 2:
			printf("星期二\n");
			break;
		case 3:
			printf("星期三\n");
			break;
		case 4:
			printf("星期四\n");
			break;
		case 5:
			printf("星期五\n");
			break;
		case 6:
			printf("星期六\n");
			break;
		case 7:
			printf("星期天\n");
			break;
		default:
			printf("输入错误\n");
		}

	return 0;
}

在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗?default 只能放在最后吗?其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。不过我们通常是把 default ⼦句放在最后处理的。

六、while( 循环)

1、语法形式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while(条件表达式)//为真就会一直循环
     {
      循环体;
     }

while循环中,当条件表达式成立时,才会执行循环体中语句,每次执行期间,都会对循环因子进行修改(否则就成为死循环),修改完成后如果 while 条件表达式成立,继续循环,如果不成立,循环结束。故:while循环条件将会比循环体多执行一次。

2、if 与 while 的对比

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//代码1
#include <stdio.h>
int main()
{
	if (1)
		printf("hehe\n"); //if后边条件满⾜,打印⼀次hehe
	return 0;
}


//代码2
#include <stdio.h>
int main()
{
	while (1)
		printf("hehe\n"); //while后边的条件满⾜,死循环的打印hehe
	return 0;
}

练习:输入一个整数,逆顺序打印这个整数的每一位

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int a = 0;
	scanf("%d", &a);
	while (a)
	{
		printf("%d", a % 10);
		a/= 10;
	}
	return 0;
}

练习:输⼊⼀个正的整数,逆序打印这个整数的每⼀位 例如: 输⼊:1234,输出:4 3 2 1 输⼊:521,输出:1 2 5

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	while (n)
	{
		printf("%d ", n % 10);
		n /= 10;
	}
	return 0;
}

七、for (循环)

1、语法形式

for 循环是三种循环中使用最多的, for 循环的语法形式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(表达式1; 表达式2; 表达式3)
语句;//如果循环体想包含更多的语句,可以加上⼤括号

表达式1:⽤于循环变量的初始化; 表达式2:⽤于循环结束条件的判断;(如果判断部分什么都不写,则表示恒成立) 表达式3:⽤于循环变量的调整。 整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式在循环。

2、for 与 while 进行对比

练习:计算0 ~ 100 之间的数字为3的倍数之和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int i = 0;
	int sum = 0;
	for (i = 1; i <= 100; i++)
	{
     	if(i % 3 == 0)
        sum += i;
    }
	printf("%d\n", sum);
	return 0;
}


//⼩⼩的优化
//如果能直接产⽣3的倍数的数字就省去了多余的循环和判断
#include <stdio.h>
int main()
{
	int i = 0;
	int sum = 0;
	for (i = 3; i <= 100; i += 3)//直接产生3的倍数
	{
		sum += i;
	}
	printf("%d\n", sum);
	return 0;
}

八、do-while (循环)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
do
  {
   语句;
   }
while(表达式)

while 和 for 这两种循环都是先判断,条件如果满足就进⼊循环,执行循环语句,如果不满⾜就跳出循环;而 do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表达式为,就会进行下一次,表达式为,则不再继续循环。所以在 do while 语句中循环体是⾄少执行一次,这是 do while 循环⽐较特殊的地方。

例:在屏幕上打印1~10

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int i = 1;
	do
	{
		printf("%d", i);
		//i = i + 1;
		i++;
	} 
    while (i <= 10);
	return 0;
}

练习:输入一个正整数计算其为几位

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main()
{
	int n = 0;
	scanf("%d", &n);
	int cnt = 0;
	do
	{
		cnt++;
		n = n / 10;
	} while (n);
	printf("%d\n", cnt);
	return 0;
}

九、break 和 continue 语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中提供了 break 和 continue 两个关键字。 • break 的作⽤是⽤于永久的终止此次循环(不是用来终止函数的函数用 return),不影响外层函数,只要 break 被执⾏,直接就会跳出循环,继续往后执⾏。 • continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。

9.1 while 循环中的 break 和 continue

break举例

continue举例

9.2 for 循环中的 break 和 continue

break举例

continue举例

在这⾥我们也可以对⽐⼀下 while 循环和 for 循环中 continue 的区别:

最大的区别就是 while中先执行语句后跳出循环for中先执行语句后跳出循环

9.3 do while循环中的 break 和 continue

同 while 中的 break 和 continue。

十、循环的嵌套

前⾯学习了三种循环 while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套。

练习:找出100~200之间的素数,并打印在屏幕上。

注:素数⼜称质数,只能被1和本⾝整除的数字。

分析:

1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决; 2. 假设要判断 i 是否为素数,需要拿2 ~ (i-1)之间的数字去试除 i,需要产⽣ 2 ~ (i-1)之间的数字,也可以使用循环解决; 3. 如果2 ~ (i-1)之间有数字能整除 i ,则 i 不是素数,如果都不能整除,则 i 是素数。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
	int i = 0;
	int count = 0;
	for (i = 100; i <= 200; i++)//循环产⽣100~200的数字
    //优化1条件:偶数不可能为素数
    //for(i = 101;i <= 200;i += 2)
    //优化2在除时:在除数除时可以用开方数除时#include<math.h>
    //for(j = 2, j <= sqrt(i); j++)
	{
		int j = 0;
		int flag = 1;//假设i是素数
		for (j = 2; j <= i-1; j++)//循环产⽣2~i-1之间的数
		{
			if (i % j == 0)//判断i是否为素数
			{
				flag = 0;//表示不是素数
				break;
			}
		}
		if (flag == 1)
		{
			printf("%d ", i);
			count++;
		}
			
	}
	printf("\ncount=%d ", count);
	return 0;
}

十 一、goto 语句

goto 语句和跳转标号,可以实现在同⼀个函数内跳转到设置好的标号处进行执行语句。

(也可以变成循环)

形式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  goto again;//again可以为任意标识
     所要跳过的语句
  again:

//也可以变成循环,把again与goto进行调换

例:

如果想不打印 haha 就可以使用 goto 语句:

只就是 goto 语句的使用,如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执行逻辑,所以建议是能不⽤尽量不去使用;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出使用 goto 就⾮常的⽅便了。

#尤其是在循环中与 break 跳出循环相比较, goto 语句非常便捷。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Molecular Psychiatry:神经影像机器学习对不同表型癫痫患者脑龄进行预测
请点击上面“思影科技”四个字,选择关注我们,思影科技专注于脑影像数据处理,涵盖(fMRI,结构像,DTI,ASL,EEG/ERP,FNIRS,眼动)等,希望专业的内容可以给关注者带来帮助,欢迎留言讨论,也欢迎参加思影科技的其他课程。(文末点击浏览)
用户1279583
2019/07/30
9290
Molecular Psychiatry:神经影像机器学习对不同表型癫痫患者脑龄进行预测
大脑年龄预测:机器学习工作流程的系统比较研究
脑解剖扫描预测的年龄和实际年龄之间的差异,如脑年龄增量,为非典型性衰老提供了一个指示。机器学习 (ML) 算法已被用于大脑年龄的估计,然而这些算法的性能,包括(1)数据集内的准确性,  (2)跨数据集的泛化,  (3)重新测试的可靠性,和(4)纵向一致性仍然没有确定可比较的标准。本研究评估了128个工作流程,其中包括来自灰质 (GM) 图像的16个特征和8个具有不同归纳偏差的ML算法。利用四个覆盖成人寿命的大型神经成像数据库进行分析 (总N=2953,18-88岁),显示了包含4.73—8.38年的数据集中平均绝对误差 (MAE ) ,其中32个广泛抽样的工作流显示了包含5.23—8.98年的交叉数据集的MAE。结果得到:前10个工作流程的重测信度和纵向一致性具有可比性。特征的选择和ML算法都影响了性能。具体来说,体素级特征空间 (平滑和重采样) ,有和没有主成分分析,非线性和基于核的ML算法表现良好。在数据集内和跨数据集内的预测之间,大脑年龄增量与行为测量的相关性不一致。在ADNI样本上应用表现最佳的工作流程显示,与健康对照组相比,阿尔茨海默病患者和轻度认知障碍患者的脑龄增量明显高于健康对照组。在存在年龄偏倚的情况下,患者的脑龄增量估计因用于偏倚校正的样本而不同。总之,大脑年龄具有一定应用前景,但还需要进一步的评估和改进。
悦影科技
2023/06/25
7490
重度抑郁症患者的脑龄
重度抑郁症(Major depressive disorder, MDD) 与脑萎缩、衰老相关疾病以及死亡事件的风险增加有关。本研究在一个大型多中心国际数据集中,研究了成人MDD患者大脑的提前衰老,以及这一过程是否与临床特征相关。本研究汇集了来自全球19个样本集中T1加权MRI图像的大脑测量数据,进行了一项mega分析。通过测量来自ENIGMA MDD工作组对照组 (952名男性和1236名女性) 的7个皮质下体积、34个皮质厚度和34个表面积、侧脑室和总颅内体积,预测实际年龄 (18–75岁),来评估健康脑龄。将学习到的模型系数应用于927名对照组男性和986名抑郁症男性、1199名对照组女性和1689名抑郁症女性,以获得独立的无偏差脑龄预测值。计算预测“脑龄”和实际年龄之间的差异,来代表预测脑龄差异 (brain-predicted age difference, brain-PAD) 。平均而言,与对照组相比,MDD患者的brain-PAD 高出+1.08岁(SE 0.22) (Cohen's d=0.14, 95%置信区间: 0.08–0.20) 。然而,这种差异似乎不是由特定的临床特征 (复发状态、缓解状态、抗抑郁药物使用、发病年龄或症状严重程度) 驱动的。这项研究显示了MDD患者中与年龄相关的大脑结构异常的微妙模式。观察到大量组内差异和组间重叠。未来,需要对MDD和躯体健康结果进行纵向研究,以进一步评估这些brain-PAD估计值的临床价值。本文发表在 Molecular Psychiatry杂志。
用户1279583
2022/02/28
4310
重度抑郁症患者的脑龄
精神分裂症患者的脑老化:来自ENIGMA精分联盟26个国际队列的证据
精神分裂症(Schizophrenia, SZ)与终身认知障碍、年龄相关性慢性疾病和过早死亡的风险增加相关。在ENIGMA精神分裂症工作组进行的一项前瞻性荟萃分析研究中,我们调查了成人SZ患者的高级脑老化证据,以及这是否与临床特征相关。本研究纳入了来自全球26个队列的数据,共2803例SZ患者(平均年龄34.2岁;年龄18 ~ 72岁;67%为男性)和2598名健康对照(平均年龄33.8岁,范围18 ~ 73岁,55%为男性)。脑预测年龄由68个皮层厚度和表面积测量值,7个皮层下体积,侧脑室体积和总颅内体积组成,所有这些数据都来自于t1加权的脑磁共振成像(MRI)扫描。通过脑预测年龄和实际年龄(脑预测年龄差异[brain- predicted age difference, brain- PAD])之间的差异评估健康脑老化轨迹的偏差。在校正了年龄、性别和研究地点后(Cohen′s d = 0.48), SZ组患者的脑- PAD平均为+3.55岁(95% CI: 2.91, 4.19;I² = 57.53%)。在SZ患者中,脑- PAD与特定的临床特征(发病年龄、病程、症状严重程度或抗精神病药使用和剂量)无关。这项大规模合作研究表明,SZ的提前结构性脑老化。对SZ和一系列身心健康结局的纵向研究将有助于进一步评估脑- PAD增加的临床意义及其受干预措施影响的能力。
悦影科技
2023/04/18
4400
Cerebral Cortex|认知和基于结构协方差结构形态连接的性别差异:来自UK Biobank大样本量的证据
摘要:有证据表明,在特定领域的认知存在性别差异,女性通常在言语记忆方面表现出优势,而男性往往在空间记忆方面表现得更好。大脑连通性的性别差异得到了充分的记录,可能为这些差异提供了见解。在这项研究中,我们研究了来自英国生物银行的大型健康样本的认知和结构协方差的性别差异,作为形态测量连通性的指标。正如预测的那样,女性表现出更好的言语记忆,而男性表现出空间记忆优势。女性也表现出更快的处理速度,在执行功能上没有观察到性别差异。相对于女性,男性表现出更高的整体效率,以及更高的两个半球的区域协方差。这些发现有助于更好地理解生物性别和认知差异如何与图形论方法衍生的形态测量连通性相关。
悦影科技
2024/03/21
2070
nature mental health:怀孕期间母亲积极的心理健康会影响儿童的海马体和功能网络
摘要:积极的心理健康是身体健康和幸福的重要组成部分。然而,这方面的研究相对被忽视。本研究使用纵向数据集来调查怀孕期间母亲积极情绪对7.5岁儿童大脑结构和功能的影响(n=381)。通过对26-28周问卷进行验证性因素分析,制定了积极的孕产妇心理健康衡量标准,包括怀孕期间的积极情绪和情绪健康。研究发现,怀孕期间心理健康状况较好的母亲所生的女孩,其双侧海马体更大。此外,心理健康状况良好的母亲的孩子表现出多个网络功能连接的改变,包括默认模式、显着性、执行控制、杏仁核和丘脑-海马网络。这些发现将孕产妇心理健康的研究扩展到孕产妇精神病理学之外,表明在怀孕期间促进积极的孕产妇心理健康作为后代大脑发育的潜在保护因素的重要性。
悦影科技
2024/06/27
2340
BrainAGE作为大脑老化的神经影像标志物的十年
随着人口老龄化,神经退行性疾病的发病率越来越高,给个人和整个社会带来越来越大的负担。然而,个体的衰老速度是由环境、基因和表观遗传等各种因素以及各因素间的相互作用决定的。建立神经解剖学衰老过程的生物标志物,是神经科学的一个新趋势,以便在个体水平上,对年龄相关性神经退行性疾病和神经精神疾病进行风险评估和预测。“脑年龄差距估计(Brain Age Gap Estimation,BrainAGE)”方法是基于结构MRI,预测和评估个体脑龄的首个也是实际应用最广泛的概念。本文总结了过去10年内发表的所有研究,这些研究建立并使用BrainAGE方法来评估基因、环境、生活负担、疾病或寿命之间的相互作用,研究衰老对个体神经解剖学的影响。未来,基于结构或功能标记物的BrainAGE和其他脑年龄预测方法可能会改善对神经病学、神经精神病学和神经退行性疾病的个体风险的评估,并有助于开发个性化的神经保护治疗和干预措施。本文发表在Frontiers in Neurology杂志。
用户1279583
2022/02/28
7110
BrainAGE作为大脑老化的神经影像标志物的十年
NC:在个体层面研究整个生命周期的灰质体积轨迹
摘要:青少年的大脑发育结构彰显出显著的个体差异。然而,受限于大规模纵向神经影像数据的稀缺性,当前研究往往聚焦于人群平均特征,而对于驱动这些个体差异的神经生物学根源,我们的了解仍然相对有限。为了深入探讨这一问题,我们依托IMAGEN青少年队列,进行了长达9年(横跨14至23岁)的跟踪研究,成功识别出三组具有独特全脑灰质体积(GMV)发育轨迹的青少年群体。与其余两组相比,第一组青少年在青春期阶段展现出了GMV的持续减少趋势,且伴随着较高的神经认知表现。而第二组青少年则呈现出GMV下降速度较慢的特点,其神经认知性能相对较低,这一现象可能受到了表观遗传差异及更为沉重的环境压力的共同影响。至于第三组青少年,由于遗传变异的作用,他们表现出GMV的增加趋势,但基线的神经认知表现却相对较低。进一步地,通过利用英国生物银行的数据资源,我们初步观察到这些基于GMV的差异在个体进入成年中后期时可能趋于减弱。本研究不仅揭示了基于GMV的青少年神经发育模式的多样性,还为我们探索这些模式对个体长期发展可能产生的潜在影响提供了宝贵的线索。
悦影科技
2024/10/22
1410
Nature子刊:大脑在局部区域的结构-功能耦合的遗传度与个体差异
白质结构连接支持了功能激活或功能连接的底层基础。结构和功能连接分布之间的关系,被称为SC-FC耦合,目前已经在全脑、全连接组水平上进行了研究,但很少有研究在区域尺度上研究这种关系。在本文中使用来自人类连接组计划的扩散加权MRI和静息态功能MRI数据量化了健康年轻成人在局部脑区水平的SC-FC耦合,并研究了SC-FC耦合是否可遗传以及SC-FC耦合的个体差异。
用户1279583
2022/02/28
9400
Nature子刊:大脑在局部区域的结构-功能耦合的遗传度与个体差异
中青年人脑白质的年龄效应和性别差异:DTI、NODDI 和 q 空间研究
本文使用先进的扩散磁共振成像(dMRI)研究了中青年人脑白质的微观结构变化。使用混合扩散成像(HYDI)获得多shell扩散加权数据。HYDI方法用途广泛,并使用扩散张量成像(DTI)、神经突定向扩散与密度成像(NODDI)和q空间成像方法分析数据。本研究包括24名女性和23名男性被试,年龄在18至55岁之间。在整个大脑的48个白质感兴趣区域(ROI)中使用最小二乘线性回归测试了年龄和性别对扩散指标的影响,并对ROI进行了多重比较校正。在这项研究中,投射到海马或大脑皮层的白质是对大脑衰老最敏感的区域。具体来说,在这个从青年到中年的队列中,年龄效应与白质纤维更分散有关,而组织限制和轴突内体积分数保持相对稳定。NODDI的纤维弥散指数对老化表现出最显著的敏感性。此外,这一年龄队列中DTI指数的变化主要与纤维弥散指数相关,而不是与NODDI的细胞内体积分数或q空间测量值相关。虽然男性和女性的衰老率没有差异,但男性的轴突内体积分数往往高于女性。这项研究表明,使用HYDI采集和NODDI分区建模的高级dMRI可以阐明对年龄和性别敏感的微观结构变化。最后,本研究深入了解了DTI扩散指标与NODDI模型q空间成像的高级扩散指标之间的关系。
用户1279583
2022/04/12
1.4K0
中青年人脑白质的年龄效应和性别差异:DTI、NODDI 和 q 空间研究
腹内侧前额叶与脑岛皮层变化对儿童到青少年元记忆发育的影响
元记忆监控与内生回忆准确性的能力在儿童发育过程大大改善,但潜在的神经变化和对智力发育的影响在很大程度上是未知的。来自加州大学戴维斯分校心智与大脑中心(Center for mind and brain, UCD)的Yana Fandakova等人在PNAS发表了一篇文章,研究了支持元认知的关键脑区的皮层变化是否有助于从童年到青春期早期的元记忆监控能力变化。 Introduction 自省记忆准确性和元记忆监视的能力对于指导学习和决策非常重要,例如一个学生对考试准备的复习材料有疑问,他会重复检查这些材料;同样
用户1279583
2018/03/29
1.5K0
腹内侧前额叶与脑岛皮层变化对儿童到青少年元记忆发育的影响
综述文章:支持自闭症谱系障碍青少年灵活认知和行为的大脑机制
认知灵活性使人们能够对不断变化的环境做出适当的反应,并与积极的生活结果有关。随着对向独立生活过渡的日益关注,青春期对自闭症谱系障碍(ASD)的青少年提出了特别的挑战,他们在面对挑战时往往难以灵活地作出行为。本文综述了青少年灵活认知发展的大脑机制,以及这些神经系统是如何影响ASD的。任务转换和设置转移的神经影像学研究为ASD个体在认知灵活性任务执行过程中非典型的外侧额顶叶和中扣带岛叶网络激活提供了证据。最近的研究也探讨了内在的大脑网络动态如何支持灵活的认知。这些动态功能连接研究为青少年ASD患者脑状态间转换数量的改变以及功能连接的高变异性提供了证据。该领域的未来发展方向包括:利用生态效度和结构效度相结合的度量方法来测量认知灵活性。ASD患者执行功能能力的异质性也必须进行分析,以确定哪些个体将从提高灵活性的针对性训练中受益最大。青春期激素对ASD青少年脑网络发育和认知成熟的影响是另一个需要进一步探索的领域。最后,双语可能与ASD保留的认知灵活性有关,这一有趣的可能性有待进一步研究。解决这些开放性问题对于未来ASD青少年认知和行为灵活性的转化神经科学研究至关重要。
悦影科技
2021/05/23
5340
综述文章:支持自闭症谱系障碍青少年灵活认知和行为的大脑机制
BASE:大脑年龄的标准化评估
摘要:脑年龄是脑健康和相关疾病的一个强有力的生物标志物,最常从Tl加权磁共振图像推断。大脑年龄预测的准确性通常在2-3年的范围内,这主要是通过深度神经网络实现的。然而,由于数据集、评估方法和指标的差异,比较研究结果是困难的。为了解决这个问题,我们引入了脑年龄标准化评估(BASE),其中包括: (i) 一个标准化的Tlw MRI数据集,包括多站点、新的未见站点、测试-重测试和纵向数据;(ii) 相关的评估方案,包括重复的模型训练和基于一套综合的性能指标测量准确性;(iii)基于线性混合效应模型的统计评估框架,用于严格的绩效评估和交叉比较。为了展示BASE,我们综合评估了四种基于深度学习的脑年龄模型,评估了它们在使用多站点、测试-重测试、未见站点和纵向Tlw MRI数据集的场景下的性能。
悦影科技
2024/05/24
1110
NATURE子刊:出生第一年的纵向EEG power能识别孤独症谱系障碍
ASD(孤独症谱系障碍)的研究目的之一就是确定早期生物标志,以指导生理病理诊断。EEG捕捉到的脑电振荡被认为是ASD生理病理学的核心。来自哈佛医学院的Laurel J. Gabard-Durnam等人在NATURE COMMUNICATIONS杂志发文,研究者以3-36月大的ASD高/低风险婴儿为被试,测量纵向EEG power,来探讨EEG power如何以及何时能够区分被试3岁时患ASD的风险以及是否患有ASD。第一年、第二年和前3年的EEG数据被放进数据驱动模型中来区分ASD。出生后第一年的动态功率能最有效地区分不同组别的婴儿。delta和gamma频段的功率轨迹能区分ASD婴儿和正常婴儿。此外,随着时间的推移也出现了一种发展趋势,高频段更易区分不同ASD症状。
用户1279583
2019/11/27
1.2K0
大脑发育图揭示脑发育的“黄金”期|研究速递
大脑一生面临的挑战重重,从出生到成熟,从衰老到死亡,外界环境时常波动,身体结构也一直在变化。6岁时儿童的大脑成熟度超过90%。因此,6岁之前被认为是脑发育的“黄金”期,是感知觉经验和智力发育的核心阶段。多种遗传、环境因素引起的脑发育异常(如自闭症),多于此年龄阶段累积并呈现症状。童年脑发育与功能的完善,不仅是人脑早期发展与重塑的基石,也是人生意义和价值判断形成的生理基础,是毕生幸福感的源泉。
脑机接口社区
2022/09/22
1K0
大脑发育图揭示脑发育的“黄金”期|研究速递
PNAS:横断面和纵向绘制人类脑图
在年龄不同的大型队列中获得的大脑扫描促进了最近在建立规范的大脑衰老图表方面的进展。在这里,我们提出了一个关键的问题,即与年龄相关的大脑轨迹的横截面估计是否与直接从纵向数据测量的结果相似。我们表明,从横切面绘制的脑图中推断出的与年龄相关的大脑变化可能大大低估了纵向测量的实际变化。我们进一步发现,个体之间的大脑衰老轨迹差异显著,很难用横断面估计人口水平的年龄趋势来预测。预测误差与神经影像学混淆和生活方式因素有一定关系。我们的发现为纵向测量在确定大脑发育和衰老轨迹中的重要性提供了明确的证据。
悦影科技
2023/08/20
2320
JAMA Psychiatry:不良环境对青年人的心理状态、行为表现和脑发育的影响
宾夕法尼亚大学的Raquel E. Gur教授及其研究团队,利用样本量高达9498的费城神经发展队列研究(不同于一般的纵向研究,属于纵向展开但不是同一个被试)数据库(PNC),收集了1601名青年人的脑影像数据,从社会经济地位(socioeconomic status,SES)和创伤性应激事件( traumatic stressful events ,TSEs)的经历两个方面研究环境对年轻人的心理、行为和脑发育的影响,结果表明低SES(低社会经济地位)和TSEs(创伤性应激事件经历)是影响认知神经发育和脑结构及功能的独立因素,低SES和经历过TSE的青年人具有较早的生理发育和脑发育特征。研究进一步强调了环境因素对神经发育影响的重要性,研究结果发表在JAMA Psychiatry杂志。
用户1279583
2019/07/17
7400
JAMA Psychiatry:不良环境对青年人的心理状态、行为表现和脑发育的影响
大脑功能连接的发展遵循青春期依赖的非线性轨迹
青春期是对身体和行为产生巨大影响的发育时期,青春期荷尔蒙不仅对身体的形态变化起着重要作用,而且对大脑的结构和功能也起着重要作用。了解青少年时期的大脑发育已经成为神经科学领域的首要任务,因为它与许多精神和行为障碍的发作相吻合。然而,关于青春期如何影响大脑功能连接体,我们知之甚少。在这项研究中,通过对典型发育儿童和青少年(两性)的纵向人类样本的研究,我们证明了大脑功能连接体的发育更符合青春期状态,而不是实足年龄。特别是,大脑功能连接体的中心性、分离性、效率和整合性在青春期标记物出现后增加。我们发现,这些效应在注意力和任务控制网络中更强。最后,在控制了这一效应后,我们发现这些网络之间的功能连接与更好的认知灵活性有关。本研究指出了在探索发育轨迹时考虑纵向非线性趋势的重要性,并强调了青春期对大脑功能组织的影响。
悦影科技
2023/04/18
3560
Biological Psychiatry:胎儿脑网络的发展:与常见神经疾病的相关性
人类胎儿以及早产儿的磁共振成像、组织学和基因分析方法为产前大脑发育的阶段过程提供了见解。对出生前微观和宏观脑网络发育理解的增加,激发了人们对理解产前大脑发育与常见神经疾病的相关性的兴趣。关于宫内大脑对环境、可塑性窗口以及涉及大规模网络连接中断的儿童期疾病的产前起源的敏感性,存在大量的问题。许多现有的关于人类产前神经发育的文献都来自横断面或案例研究,这些研究不能解决出生前大脑发育中个体差异的纵向后果。本文将:1)详细介绍研究人类产前大脑的具体方法,2)总结人类产前神经网络的大规模发展,整合各种实验方法的研究结果,3)探索早期发育大脑的可塑性以及产前易感性的潜在性别差异,以及4)评估将特定的产前大脑发育过程与儿童常见神经系统疾病的异常神经连接形式联系起来的机会。本文发表于Biological Psychiatry杂志。
用户1279583
2022/02/28
7570
Biological Psychiatry:胎儿脑网络的发展:与常见神经疾病的相关性
Nature medicine:基于大样本的大脑衰老模式研究
大脑衰老过程受各种生活方式、环境和遗传因素,以及与年龄相关的病理的影响。磁共振成像和人工智能方法在理解衰老过程中发生的神经解剖学变化方面发挥了重要作用。大规模、多样化的人口研究能够识别由不同但重叠的病理和生物因素导致的全面和有代表性的大脑变化模式,揭示受影响大脑区域和临床表型的交叉和异质性。在此,我们利用最先进的深度表示学习方法 Surreal-GAN,并展示方法学进展和大量实验结果,阐明来自 11 项研究的 49,482 名个体的大脑衰老异质性。通过各自的测量 R 指数确定并量化了每个个体的五种主要脑萎缩模式。它们与生物医学、生活方式和遗传因素的关联为观察到的差异的病因提供了见解,表明它们有可能成为遗传和生活方式风险的大脑内表型。此外,基线 R 指数可预测疾病进展和死亡率,捕捉早期变化作为补充预后指标。这些 R 指数建立了一种测量衰老轨迹和相关大脑变化的维度方法。它们有望实现精确诊断,特别是在临床前阶段,促进个性化患者管理和有针对性的基于特定大脑内表型表达和预后的临床试验。
悦影科技
2025/04/17
910
推荐阅读
Molecular Psychiatry:神经影像机器学习对不同表型癫痫患者脑龄进行预测
9290
大脑年龄预测:机器学习工作流程的系统比较研究
7490
重度抑郁症患者的脑龄
4310
精神分裂症患者的脑老化:来自ENIGMA精分联盟26个国际队列的证据
4400
Cerebral Cortex|认知和基于结构协方差结构形态连接的性别差异:来自UK Biobank大样本量的证据
2070
nature mental health:怀孕期间母亲积极的心理健康会影响儿童的海马体和功能网络
2340
BrainAGE作为大脑老化的神经影像标志物的十年
7110
NC:在个体层面研究整个生命周期的灰质体积轨迹
1410
Nature子刊:大脑在局部区域的结构-功能耦合的遗传度与个体差异
9400
中青年人脑白质的年龄效应和性别差异:DTI、NODDI 和 q 空间研究
1.4K0
腹内侧前额叶与脑岛皮层变化对儿童到青少年元记忆发育的影响
1.5K0
综述文章:支持自闭症谱系障碍青少年灵活认知和行为的大脑机制
5340
BASE:大脑年龄的标准化评估
1110
NATURE子刊:出生第一年的纵向EEG power能识别孤独症谱系障碍
1.2K0
大脑发育图揭示脑发育的“黄金”期|研究速递
1K0
PNAS:横断面和纵向绘制人类脑图
2320
JAMA Psychiatry:不良环境对青年人的心理状态、行为表现和脑发育的影响
7400
大脑功能连接的发展遵循青春期依赖的非线性轨迹
3560
Biological Psychiatry:胎儿脑网络的发展:与常见神经疾病的相关性
7570
Nature medicine:基于大样本的大脑衰老模式研究
910
相关推荐
Molecular Psychiatry:神经影像机器学习对不同表型癫痫患者脑龄进行预测
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档